Comment afficher une ligne apartir d'un fichier?
Résolu/Fermé
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
-
Modifié par asstel le 28/03/2014 à 17:38
asstel Messages postés 51 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 14 décembre 2014 - 31 mars 2014 à 16:39
asstel Messages postés 51 Date d'inscription vendredi 21 mars 2014 Statut Membre Dernière intervention 14 décembre 2014 - 31 mars 2014 à 16:39
A voir également:
- Comment afficher une ligne apartir d'un fichier?
- Comment ouvrir un fichier epub ? - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier rar - Guide
- Comment ouvrir un fichier docx ? - Guide
- Comment faire un fichier pdf - Guide
4 réponses
[Dal]
Messages postés
6198
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
13 décembre 2024
1 096
Modifié par [Dal] le 28/03/2014 à 20:29
Modifié par [Dal] le 28/03/2014 à 20:29
Salut asstel,
le %s de scanf va effectivement s'arrêter au prochain caractère "blanc", donc à l'espace.
Pour utiliser les fonctions de la famille scanf pour lire une ligne jusqu'au retour à la ligne, tu peux cependant faire comme cela :
http://www.cplusplus.com/reference/cstdio/scanf/
ou utiliser fgets, qui est fait pour cela, en retirant le '\n' qu'il capturera.
Dal
le %s de scanf va effectivement s'arrêter au prochain caractère "blanc", donc à l'espace.
Pour utiliser les fonctions de la famille scanf pour lire une ligne jusqu'au retour à la ligne, tu peux cependant faire comme cela :
/* (...) */ char c; if (scanf("%49[^\n]",livre.titre) == 1) { printf("J'ai récupéré : [%s]\n", livre.titre); c = getchar(); /* purger '\n' */ }
http://www.cplusplus.com/reference/cstdio/scanf/
ou utiliser fgets, qui est fait pour cela, en retirant le '\n' qu'il capturera.
Dal
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
28 mars 2014 à 17:38
28 mars 2014 à 17:38
voici le code:
#include <stdio.h> #include <stdlib.h> typedef struct Livre Livre; struct Livre { char code[15]; char titre[50]; char Auteur[50]; }; void Affich_Livre () { FILE* f=NULL; Livre livre;; f=fopen("FLivre.txt","r"); rewind(f); while(!feof(f)){ fscanf(f,"%s\n%s\n%s\n",livre.code,livre.titre,livre.Auteur); printf("CODE:%s\n",livre.code); printf("TITRE\t:%s\n",livre.titre); printf("L'AUTEUR\t:%s\n",livre.Auteur); } fclose(f); }; int main() { Affich_Livre(); return 0; }
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
28 mars 2014 à 18:00
28 mars 2014 à 18:00
il n y a pas une solution pour lire ligne par ligne.??
asstel
Messages postés
51
Date d'inscription
vendredi 21 mars 2014
Statut
Membre
Dernière intervention
14 décembre 2014
28 mars 2014 à 20:03
28 mars 2014 à 20:03
j'ai essayé
fgetsmais un autre probleme se pose
Modifié par asstel le 28/03/2014 à 20:37
mais je vais essayé merciii :)
28 mars 2014 à 20:37
Modifié par asstel le 28/03/2014 à 20:50
%49[^\n] veux dire quoi?
merciiiiiiiiiiiiii :)
31 mars 2014 à 10:23
http://www.cplusplus.com/reference/cstdio/scanf/
A format specifier for scanf follows this prototype:
Donc signifie : prends jusqu'à 49 caractères dans le flux, qui ne soient pas (le retour à la ligne).
Dal
31 mars 2014 à 16:39