Im folgenden Code versuche ich, Char von Char aus einer Datei zu lesen und jedes Zeichen in einem zweidimensionalen Array zu speichern. Danach möchte ich mit seinen Koordinaten (i und j) jedes Zeichen in dem Array drucken:C Drucken eines Arrays aus zwei Dimensionen
#include <stdio.h>
#pragma warning(disable:4996)
int main(){
char grid[3][5];
FILE *file;
file = fopen("input.txt", "r");
int c;
if (file == NULL){
perror("Error in reading the file");
}
else{
int j=0;
for (int i = 0; i < 3; i++)
{
while (j<5)
{
grid[i][j] = fgetc(file);
j++;
}
j = 0;
}
}
int length = sizeof grid/sizeof grid[0][0];
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 5; j++)
{
printf("%c %d %d \n", grid[i][j], i, j);
}
}
printf("\n");
return 0;
}
Die Datei, die ich von Blicken lesen wie:
ABCDE
FGHIJ
KLMNO
möchte ich das Ergebnis wie zu sein :
A 0 0
B 0 1
...
Aber die wirklichen Ergebnisse, die ich habe ist:
A 0 0
B 0 1
C 0 2
D 0 3
E 0 4
1 0
F 1 1
G 1 2
H 1 3
I 1 4
J 2 0
2 1
K 2 2
L 2 3
M 2 4
Wie Sie sehen können, wird die zweite Zeile mit einem Leerzeichen zuerst und das gleiche mit der dritten Zeile gedruckt. Außerdem werden die letzten beiden Buchstaben N und O nicht gedruckt. Kann mir jemand helfen, dieses Problem zu lösen?
Sie lesen zwei '\ n's als Zeichen, die die letzten beiden Elemente Ihres' char' Array herausdrückt. –
Ändern Sie den Inhalt Ihrer Datei in 'ABCDEFGHIJKLMNO' und es sollte ordnungsgemäß funktionieren. –