Language C : Problème avec fscanf : comment lire une ligne(avec espaces) et l'af
Dernière réponse : dans Programmation
Salut tout le monde !!!
j'espère que vous allez pouvoir m'aider : voila, je créais une sorte de qui veut gagner des millions pour l'université mais j'ai un gros problème....
les question sont dans un fichier niv1.txt
dan le fichier txt :
-ligne 1 : question
-ligne 2 : réponse
-ligne 3 : réponse fausse
Je tape :
FILE *niv1;
char n[25];
niv1=fopen("niv1.txt","rt");
fscanf(niv1,"%s",n);
printf(chaîne : %s",n);
Le problème et que la question comporte des espaces et à l'affichage je n'ai bien sure que le premier mot de la question...comment faire ???
Et si qqn pouvait me faire un résumer clair, net et précis sur l'utilisation de fopen et fscanf ?
MERCIIIII
Salut
Autres pages sur : language probleme fscanf lire ligne espaces
Lassé par la pub ? Créez un compte
Merci de vos réponses bien qu'elles ne m'ai pas énormément avancés...
J'ai trouvé la solution tt seul....si ça intéresse qqn :
FILE *niv1;
char n[25];
niv1=fopen("niv1.txt","rt");
fgets(niv1,25,n);
printf(chaîne : %s",n);
il faut mettre : fgets(nom_d'ouverture_du_fichier,nombre_de_caractères_de_la_chaîne,nom_de_la_chaine);
fprintf sert à faire le chemin "inverse" : au lieu de lire les données dans le fichier, cette commande écris dans le fichier !
voilà ! Bye et encore merci au gens qui répondent aux posts ! ^^
pour le fgets () tu as raison.
pour le fopen, il faut ajouter "t" pour le mode texte et "b" pour le mode binaire.
si rien n'est précisé, ça regarde la variable globale _fmode qui est soit à O_BINARY soit à O_TEXT.
Généralement par défaut _mode vaut O_TEXT, donc le "t" n'est généralement pas utile ;-)
pour le fopen, il faut ajouter "t" pour le mode texte et "b" pour le mode binaire.
si rien n'est précisé, ça regarde la variable globale _fmode qui est soit à O_BINARY soit à O_TEXT.
Généralement par défaut _mode vaut O_TEXT, donc le "t" n'est généralement pas utile ;-)
je viens de regarder
http://www.linux-france.org/article/man-fr/man3/freopen...
et il est dit que ca sert a rien ce 'b' que c'est juste la pour assurer la compatibilité avec une ancienne norme et il ne parle pas du 't'...
http://www.linux-france.org/article/man-fr/man3/freopen...
et il est dit que ca sert a rien ce 'b' que c'est juste la pour assurer la compatibilité avec une ancienne norme et il ne parle pas du 't'...
Lassé par la pub ? Créez un compte
(d'ailleurs il me semble que gets n'est pas du tout recommandé....)