dateien mit fread() lesen
Verfasst: Sa Jan 17, 2009 9:57 pm
Servus
Ich habe mehr oder weniger gerade erst angefangen mich mit C zu beschäftigen(, zumindest bin ich noch relativ unerfahren^^,) und wollte als einfachen Versuch einmal eine .txt-Datei mit der Funktion fread() lesen und in der Konsole ausgeben lassen.
(PS:Ich arbeite derzeit noch unter Windows.)
Das Problem ist nun jedoch, dass der Text nicht vollkommen korrekt wiedergegeben wird.
Um mich an diverse andere Vorhaben heranzuarbeiten wollte ich nämlich erreichen, dass die Datei Blockweise(,am besten immer ein Zeichen,) ausgelesen wird.
Quellcode:
#include <stdio.h>
int main()
{
char c[1];
FILE *readmezeiger;
readmezeiger=fopen("readme.txt","rb");
while((fread(c,sizeof(c),1,readmezeiger))!=0)
{
printf("%s",c);
}
return 0;
}
readme.txt(auszulesende Datei):
-----------------------------------
test test test123....
-----------------------------------
FALLS DIES NUN FUNKTIONIERT HAT; MUESSTE ALLES GANZ NORMAL ZU LESEN SEIN.
Wenn ich nun jedoch versuche das Programm auszuführen, wird mir jedoch etwas sehr merkwürdiges ausgegeben.(Ich veruche einfach mal einen Screenshot anzuhängen.--->c[1].JPG9)
Ändere ich nun jedoch den Quelltext ab...:
#include <stdio.h>
int main()
{
char c[10];
FILE *readmezeiger;
readmezeiger=fopen("readme.txt","rb");
while((fread(c,sizeof(c),1,readmezeiger))!=0)
{
printf("%s",c);
}
return 0;
}
...,wird mir abermals etwas ausgegeb(--->c[10].JPG). Könnte mir jemand bitte weiterhelfen und mir verraten, wo das Problem(/mein Denkfehler) liegt?
Danke im Vorraus.
PS: Ich weiß, dass es funktioniert, wenn der wert in [] größer ist, als die Gesamtzeichenzahl des Textes(, also wenn ich z.B 10000 eingebe).
Ich habe mehr oder weniger gerade erst angefangen mich mit C zu beschäftigen(, zumindest bin ich noch relativ unerfahren^^,) und wollte als einfachen Versuch einmal eine .txt-Datei mit der Funktion fread() lesen und in der Konsole ausgeben lassen.
(PS:Ich arbeite derzeit noch unter Windows.)
Das Problem ist nun jedoch, dass der Text nicht vollkommen korrekt wiedergegeben wird.
Um mich an diverse andere Vorhaben heranzuarbeiten wollte ich nämlich erreichen, dass die Datei Blockweise(,am besten immer ein Zeichen,) ausgelesen wird.
Quellcode:
#include <stdio.h>
int main()
{
char c[1];
FILE *readmezeiger;
readmezeiger=fopen("readme.txt","rb");
while((fread(c,sizeof(c),1,readmezeiger))!=0)
{
printf("%s",c);
}
return 0;
}
readme.txt(auszulesende Datei):
-----------------------------------
test test test123....
-----------------------------------
FALLS DIES NUN FUNKTIONIERT HAT; MUESSTE ALLES GANZ NORMAL ZU LESEN SEIN.
Wenn ich nun jedoch versuche das Programm auszuführen, wird mir jedoch etwas sehr merkwürdiges ausgegeben.(Ich veruche einfach mal einen Screenshot anzuhängen.--->c[1].JPG9)
Ändere ich nun jedoch den Quelltext ab...:
#include <stdio.h>
int main()
{
char c[10];
FILE *readmezeiger;
readmezeiger=fopen("readme.txt","rb");
while((fread(c,sizeof(c),1,readmezeiger))!=0)
{
printf("%s",c);
}
return 0;
}
...,wird mir abermals etwas ausgegeb(--->c[10].JPG). Könnte mir jemand bitte weiterhelfen und mir verraten, wo das Problem(/mein Denkfehler) liegt?
Danke im Vorraus.
PS: Ich weiß, dass es funktioniert, wenn der wert in [] größer ist, als die Gesamtzeichenzahl des Textes(, also wenn ich z.B 10000 eingebe).