J'écris un code pour lire dans un fichier et récuperer les lignes dans des tableaux par exemple.
voici le code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 #include <string> #include <iomanip> #include <iostream> #include <fstream> #include <cstdlib> #include "ctype.h" int main() { int i; char buf[256]; sprintf(buf,"D:\\Test\\table.txt"); FILE *fp=fopen(buf,"r"); if (fp==0) {exit(0); std::cout<<"Impossible d'ouvrir le fichier"<<std::endl;} else { int j=1; while ( !feof(fp) ) { fgets(buf,sizeof(buf),fp); std::cout <<"nom tab "<<j<<":"<< buf << std::endl; int a=0; while ((strncmp(buf, ";\0",2)!=0)&&(!feof(fp))) { a++; fgets(buf,sizeof(buf),fp); std::cout <<"attribut "<<a<<":"<< buf << std::endl; int k=3; while (k!=0) { fgets(buf,sizeof(buf),fp); std::cout<< buf << std::endl; k--; } } } } fclose(fp); std::cout<<"c'est fini"<<std::endl; char c = getchar(); return 0; }
La bouclene fonctionne car la valeur de la ligne n'est pas comparée avec le ";". Je ne sais pas si j'utilise mal la fonction "strncmp" ou pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part while ((strncmp(buf, ";\0",2)!=0)&&(!feof(fp)))
J'ai besoin de votre aide!
Partager