Lire des chiffres à partir d'un fichier texte
Fermé
sonya
-
14 avril 2017 à 21:55
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 18 avril 2017 à 09:24
[Dal] Messages postés 6057 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 17 mars 2023 - 18 avril 2017 à 09:24
A voir également:
- Lire des chiffres à partir d'un fichier texte
- Annuaire portable gratuit a partir d'un nom ✓ - Forum Mobile
- Fichier rar - Guide
- Dans le texte, un seul mot a réellement été écrit en lettres capitales (majuscules). quel est ce mot ? ✓ - Forum Word
- Comment trouver un numéro à partir du nom et prénom ✓ - Forum Mobile
- Fichier host - Guide
1 réponse
[Dal]
Messages postés
6057
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
17 mars 2023
1 043
Modifié le 15 avril 2017 à 00:41
Modifié le 15 avril 2017 à 00:41
Salut,
Si tu veux récupérer des lignes, et bien... récupère des lignes :-)
Pour lire une ligne sur deux, tu peux faire comme cela :
Dans la boucle, utilise tout ou partie des données de la ligne récupérée avec
http://www.cplusplus.com/reference/cstdio/sscanf/
Dal
Si tu veux récupérer des lignes, et bien... récupère des lignes :-)
Pour lire une ligne sur deux, tu peux faire comme cela :
#include <stdio.h>
int main(void) {
FILE * fich;
char st[BUFSIZ];
fich = fopen("data.txt" , "r");
if (fich == NULL) {
perror("Error opening file");
return 1;
}
while (1) {
if (fgets(st, 100, fich) != NULL) {
printf("j'ai récupéré : %s", st);
/* faire ce que tu veux avec la ligne récupérée
* en la déchiffrant avec sscanf
*/
if (fgets (st, 100, fich) == NULL)
break;
} else {
break;
}
}
fclose(fich);
return 0;
}
Dans la boucle, utilise tout ou partie des données de la ligne récupérée avec
sscanf(), pour les mettre dans tes structures de données.
http://www.cplusplus.com/reference/cstdio/sscanf/
Dal
17 avril 2017 à 13:38
J'ai testé ce code, et afficher les chaines qu'il a récupéré avant de les manipuler avec sscanf mais je trouve qu'il m'affiche les lignes désordonnées.
18 avril 2017 à 09:24
chez moi :
#include <stdio.h> int main(void) { FILE * fich; char st[BUFSIZ]; fich = fopen("data.txt" , "r"); if (fich == NULL) { perror("Error opening file"); return 1; } while(1) { if (fgets(st, 100, fich) != NULL) { printf("j'ai récupéré : %s", st); /* faire ce que tu veux avec la ligne récupérée * en la déchiffrant avec sscanf */ if (fgets (st, 100, fich) == NULL) break; } else { break; } } fclose (fich); return 0; }affiche correctement une ligne sur deux en commençant avec la première, en utilisant ton jeu de données auquel j'ai rajouté 5 lignes supplémentaires.
Dal