Ich bin ein Neuling in C-Programmierung, also ertragen Sie mich und bitte korrigieren Sie mich, wenn ich den falschen Ansatz habe.Wie ignoriert man Zeilenende beim Lesen der Datei in C?
I Problem ist vor, während in der C-Datei zeichenweise Lesen
Wie Sie unten sehen können, offenbar, meine Datei hat 400 Zeichen, aber wenn ich versuche, ihnen Zeichen für Zeichen zu lesen, sie nehmen zu 419 Indizes. Ich nehme an, dass sie auch End-of-Line-Zeichen enthalten. Ich weiß nicht, wie ich sie ignorieren soll. Ich habe versucht, continue
zu verwenden, wie Sie sehen können, aber ich kann sie nicht ignorieren.
Hier ist meine Dateidaten
00000000000000000000
00000000000000000000
00000000000000000000
00555555555555555500
00000000000000000300
00000000000000000300
00000000000000000300
00000000000000000300
00000000000000000300
00000000000000000300
00444444444444444300
00400000000000000000
00400000000000000000
00400000000000000000
00400000000000000000
00400000000000000000
00777777777777777700
00000000000000000000
00000000000000000000
00000000000000000000
Hier ist mein Code:
FILE *pToFile = fopen("toConvert.txt", "r");
char single;
i = end_color;
while ((single = fgetc(pToFile)) != EOF) {
if (single != '\0') {
continue;
} else {
if (single !='0') {
bitmap[i] = 0x66;
} else {
bitmap[i] = 0xff;
}
i++;
}
}
Hinweis: Ich versuche, "grau (0x66)" Farbe in Bitmap, wenn ein Zeichen hinzufügen ist 0 und "weiß 0xff", wenn ein Zeichen anders als Null ist. Mit anderen Worten, ich muss zwischen 0 und jedem anderen Charakter unterscheiden und es ist hart und störend mit dem Ende der Zeile Charakter.
Beiseite: 'int fgetc (FILE * stream);' gibt 'char' Typ nicht zurück. Ändern Sie 'char single;' in 'int single;', damit Sie den EOF-Status von den Daten unterscheiden können. Häufige Neuling Fehler, lesen Sie immer die man-Seite. –
direkt nach dem Lesen tun 'if (single == '\ n') weitermachen;' –
Eine andere beiseite auf Stil: Sie brauchen kein '} else {', wenn der vorherige Test Sie woanders hinführt. –