PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem mit File lesen (schreiben scheint zu klappen)



HaWe
26.10.2016, 22:13
hallo,
ich komme nicht weiter, ich finde den Fehler nicht in einem Testprogramm fürs Lesen eines Files (schreiben scheint zu klappen).
Das File wird korrekt geschrieben (laut Test mit Leafpad), aber als Ausgabe erhalte ich anschließend unendliche Zeilen voller "?"

was mache ich falsch?



#include <stdio.h>
#include <stdint.h>
#include <string.h>

int main ()
{
FILE *fp;
char myFilename[100];
char c;

strcpy(myFilename, "/home/pi/mytextfile.txt");

printf("\n\n open file and write string, then close file: \n\n");

char sometext[] = "Mary had a little lamb";

fp = fopen( myFilename , "w" );
fwrite(sometext, sizeof(uint8_t), sizeof(sometext), fp );
fclose(fp);

printf("\n\n open file, read, output to stdout, then close file: \n\n");
fp = fopen( myFilename, "r" );

if (fp) {
do {
c = fgetc (fp);
putchar(c);
} while (c != EOF);
fclose(fp);
}


return(0);
}



edit,
hat sich geklärt,
c muss int sein.

hirnfrei
03.11.2016, 14:11
Was kommt denn raus, wenn du das so startest?

Davon ab, du speicherst char und willst beim Laden int?

HaWe
03.11.2016, 14:34
probiers doch einfach mal aus ;)

Tipp:
es liegt an EOF! 8)

(wenn mans ganz exakt machen will, kann man sicher noch int auf char casten, ist aber offenbar bei gpp/Linux überhaupt nicht nötig)