Schneeflocke Geschrieben 14. Januar 2003 Geschrieben 14. Januar 2003 Hallo Zusammen, ich habe folgenden Programmcode: :mod: #include <stdio.h> #include <string.h> struct telefon { char nummer[16]; char adresse[128]; }; struct telefon daten[256]; void main() { FILE *f; char zeile[80]; char tn[16]; char ad[128]; f = fopen("c:\MeineDateien\Telefonauskunft.dat", "r"); while(fgets(zeile, 79, f) != NULL) { printf("%s", zeile); // schreibt Inhalt in Array *?* strcpy(daten[16].nummer, tn); // füllt struktur tn strcpy(daten[128].adresse, ad); // füllt struktur ad } fclose(f); } ich bekomme immer eine Fehlermeldung: debug assertion failed File: fgets.c Line 60 Expression str != NULL Nur: die Datei gibt es nicht auf meinem Rechner...was is falsch oder kann man sowas unterdrücken?? Help! Flöckchen :StefanE Zitieren
Klotzkopp Geschrieben 14. Januar 2003 Geschrieben 14. Januar 2003 f ist NULL. Du musst den Rückgabewert von fopen auf != NULL prüfen. Die Ursache ist, dass du die Backslashes im Pfad nicht verdoppelt hast: f = fopen("c:\\MeineDateien\\Telefonauskunft.dat", "r"); Zitieren
Schneeflocke Geschrieben 14. Januar 2003 Autor Geschrieben 14. Januar 2003 Hi.. in der fopen Zeile oder wo meinst du das mit den \\ ? Ciao und Danke SF :StefanE Zitieren
SgtBadAzz Geschrieben 16. Januar 2003 Geschrieben 16. Januar 2003 Originally posted by Schneeflocke Hi.. in der fopen Zeile oder wo meinst du das mit den \\ ? Ciao und Danke SF :StefanE In fopen , denn ein einziger \ ist die Einleitung einer Escape-Sequenz. Findet man aber auch in jedem C-Buch wenn man es denn mal liest ;-). Frank Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.