shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013
-
28 sept. 2005 à 14:50
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 2008
-
28 sept. 2005 à 22:33
Bonjour j'ai un petit probleme avec les entrées sorties, je m'explique j'essai de creer un programme qui ai principalement comme role de pouvoir configurer un server de jeu sans tapper les lignes de commmandes ou autre juste avec des scanf,
le programme est composé d'un menu avec une fonction switch() qui envoi vers le .h du jeu concerné, cependant j'ai un probleme je ne peut pas faire de gets(variable); vu que je suis dans un switch, donc je fais le code suivant
//server name
FILE *mohaa = fopen("server.cfg","w+");
printf("\ntout d'abord quel est le nom de votre server?:\n");
scanf("%s",name);
fprintf(mohaa,"commande "%s"",name)
(la variable name ayant été déclaré comme ceci: char name[512]; cependant il y a plusieurs autres question mais dans le nom si la personne met un espace cela saute une question (4 espace et il loupe 4 questions)
pourtant quand je fais mon fprintf() les espaces sont bien pris en comptes dans le fichier. quel est le probleme svp!
julienbj
Messages postés452Date d'inscriptionjeudi 4 décembre 2003StatutMembreDernière intervention19 décembre 200815 28 sept. 2005 à 22:33
Jamais essayé avec scanf, mais elle respecte le meme formalisme que sscanf donc devrait marcher en effet.
Sinon, si tu veux tout lire ce que l'utilisateur rentre sauf le \n de la fin:
scanf("%[^\n]", buffer);
Attention, les exemples que j'avais donné étaient à base de sscanf et
non pas de scanf. sscanf permet de lire à partir d'une chaine de
caractère et non pas à partir de l'entrée standard. C'est pour ça que
je spécifiait une chaine au départ de ma fonction.
Vive le C
Tchao
[mailto:julienbj@hotmail.com Savon]
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 28 sept. 2005 à 16:46
ouai mais il ne le prend pas en compte le gets :s (en fait voila le code)
switch( choice ) {
case 1: #include "mohaa.h";
break;
... //ensuite la suite du switch
et dans le mohaa.h si je met des gets il les prend pas en compte parce que je suis dans le switch, j'ai testé de mettre gets et de le compiler en exe et ca marche, sauf que je veux juste un seul executable donc les .h m'aident a ce niveau s: qqn sait d'ou vient le probleme
shadow1779
Messages postés706Date d'inscriptionmercredi 17 novembre 2004StatutMembreDernière intervention29 septembre 2013 28 sept. 2005 à 18:34
en gros ca me donne:
char buffer[512];
char name[];
scanf(buffer, "%[a-z' ']",name);
si ma variable est en fait name ? :s parce qu'a la compilation ca marche mais il saute la question comme un gets :s, j'commence a desesperer (mais merci de m'aider les gars)