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
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");
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
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
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden