Ich habe eine Textdatei, die Zeichenfolge enthält, int und double. Wie folgt aus:So lesen Sie verschiedene Arten von Daten aus Datei
Asher 10 14.5
Julia 14 15,5
Ich brauche diese Daten 3 separate Arrays zu lesen. C hat kein String-Array, also brauche ich Char-Array, Int-Array und Double-Array. Mein 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]);
}
Aber mein Code liest nur erstes Wort und druckt es 18 mal. Wie kann ich die String-Variable lesen und in das char-Array einfügen?
Versuchen Sie, den Rückgabewert von 'fscanf' – izlin
' while ((c = getc (Datei))! = EOF) { fscanf (Datei "% s% d% lf", & col_one & col_two & col_three zu überprüfen); nameArray [Größe] = col_one; '->' while (fscanf (Datei, "% 14s% d% lf", col_one, & col_two, & col_three) == 3 && Größe
BLUEPIXY
Und' i < num;' --> 'i
BLUEPIXY