Ich habe eine Textdatei der Größe 8 durch 12 (8 Zeilen, 12 Spalten) (x, y)Lese in einer Textdatei in einen 2D-Array in C
abcdefghjikl
123456789abc
aerereghjikl
123456789abc
abc43434dfdf
12erere789ab
abcdefghjikl
12345fdfd89a
Ich versuche, jeden zu lesen einzelnes Zeichen in ein 2D-Array, wobei die erste Dimension die Zeilen und die zweite die Spalten sind. Diese
ist, was ich habe versucht:
int main(void) {
FILE * fp;
fp = fopen("test.txt","r");
char points[8][12];
int i,j;
for(i=0; i<8; i++) {
for(j=0; j<12; j++) {
fscanf(fp,"%c",&points[i][j]);
}
}
for(i=0; i<8; i++) {
for(j=0; j<12; j++) {
printf("%c",points[i][j]);
}
}
return 0;
}
Allerdings scheint meine Ausgabe richtig zu arbeiten, bis, bis die letzte Zeile der Datei.
abcdefghjikl
123456789abc
aerereghjikl
123456789abc
abc43434dfdf
12erere789ab
abcdefghjikl
12345
Wo die letzte Zeile nicht vollständig funktioniert. Ich habe versucht, die Array-Dimensionen der Zeile zu erhöhen, wodurch die letzte Zeile angezeigt wird, aber meiner Ausgabe Garbage-Werte hinzugefügt werden. Jede Hilfe würde sehr geschätzt werden.
Es gibt ein '\ n' in jeder Zeile, das Sie in Ihr Array einfügen. –
Überprüfen Sie den Rückgabewert von 'fopen()', 'fscanf()' ... –
Sie können das '\ n' mit 'fseek' am Ende der Ausführung der inneren Schleife überspringen. –