J'ai un fichier texte contenant string, int et double. Comme ceci:Comment lire différents types de données à partir du fichier
Asher 10 14,5
Julia 14 15,5
Je dois lire ces données à 3 tableaux distincts. C n'a pas de tableau de chaînes, j'ai donc besoin de char array, int array et double array. Mon code:
const int num = 18; //number of data.txt lines
char col_one[15];
int col_two;
double col_three;
int c;
int numberArray[num];
char *nameArray[num];
double doubleArray[num];
int size = 0;
FILE *file;
file = fopen("data.txt", "r");
if (file) {
while ((c = getc(file)) != EOF)
{
fscanf(file, "%s %d %lf", &col_one, &col_two, &col_three);
nameArray[size] = col_one;
numberArray[size] = col_two;
doubleArray[size] = col_three;
size++;
}
fclose(file);
}
for (int i = 0; i < num; i++)
{
printf("%s \n" ,nameArray[i]);
}
Mais mon code lit seulement le premier mot et l'imprime 18 fois. Comment est-ce que je peux lire la variable de chaîne et la mettre dans le tableau de caractères?
Essayez de vérifier la valeur de retour de 'fscanf' – izlin
' while ((c = getc (fichier))! = EOF) { fscanf (fichier, "% s% d% lf", & col_one, & col_two, & col_three) NameArray [taille] = col_one; '->' while (fscanf (fichier, "% 14s% d% lf", col_one, & col_two, & col_three) == 3 && taille
BLUEPIXY
Et' i < num;' --> 'i
BLUEPIXY