"Leere" Dateien in C
-
Hi!
Ich habe hier ein Programm, aber in dem Code scheint etwas nicht zu stimmen, denn obwohl ich eine Abfrage gemacht habe im Fall wenn die Datei leer wäre (0 Bytes eben), führt er den Befehl erst garnicht aus, ich bin mir bei dieser (feof(f) == 0)) Abfrage sehr unsicher, ob es das passende für mein Problem ist, denn das Programm bzw Modul verursacht einen Segmentation Fault.
Ich will in diesem Code einfach nur verhindern, dass das Programm "send_nick" ausführt sowie sscan, wenn die Datei leer ist. Wie mach ich das am besten, und was ist in meinem Code falsch?
if (f) { if (!(feof(f) == 0)) { while (!feof(f)) { fgets(line, 1024, f); if (sscanf(line,"%s %s %s %s",nick1, user, host, desc_bot)) { send_nick(nick1, user, host, ServerName , desc_bot ,pseudoclient_modes); } } } } fclose(f);
Danke im Vorraus
MfG
-
http://www.cppreference.com/stdio/feof.html schrieb:
The function feof() returns a nonzero value if the end of the given file stream has been reached
... wenn diese Funktion dafür überhaupt geeignet ist ...
-
Hi,
Hast du keine Alternative? Was kann ich denn verwenden?
MfG
-
systray` schrieb:
if (!(feof(f) == 0)) { while (!feof(f)) { ... } }
lass das 'if' wech, also nur so
while (!feof(f)) { ... }
-
fclose(f);
gehört in
if (f)
{}