2010-11-30 20 views
0

Ich habe Probleme mit einer grundlegenden Dateiöffnung. Ich kann den Filestream nicht erfolgreich initiieren. Es kommt immer wieder zurück NULL ... Kann mir jemand sagen, was ich vermisse? Ich habe eine "test.dat" -Datei in demselben Verzeichnis erstellt, in dem sich der Quellcode befindet.Öffnen von Dateien zum Bearbeiten

#include <stdio.h> 
#include <stdlib.h> 

int main (void) 
{ 
    if((cfPtr = fopen("test.dat", "rb+")) == NULL) { 
     printf("File could not be opened.\n"); 
    } 
    return 0; 
} 
+0

Es sollte im aktuellen Verzeichnis sein. Im Falle von MSVC wäre es das Verzeichnis der Projektdatei. – ruslik

+2

Ihr Code wird kompiliert? Du hast nicht einmal einen Typ für 'cfPtr' deklariert. – birryree

+0

Ich habe nur einen Ausschnitt des Codes enthalten. Ich habe das Verzeichnis korrigiert und alles ist gut. 'Habe ich vergessen! Ich danke dir sehr. – user523513

Antwort

1

Versuchen Sie, die test.dat Datei in das Verzeichnis zu bewegen, wo die EXE-Leben kompiliert oder wenn das aktuelle Verzeichnis für die Anwendung irgendwo anders ist, legen Sie die Datei in diesem Verzeichnis.

1

Wenn Sie versuchen, eine Datei zu öffnen, wird Ihr Betriebssystem in dem Prozess aktuelles Verzeichnis ist. Je nach Betriebssystem und/oder IDE ist dies möglicherweise das gleiche Verzeichnis wie in Ihrer Quelldatei.

1

Verwenden Sie Visual Studio? Sie müssen test.dat in das Verzeichnis Debug eingeben. In der neueren Version gibt es zwei Debug-Verzeichnisse, das müssen Sie selbst überprüfen.

1

könnten Sie die errno verwenden, um einen Hinweis auf das, was nicht in Ordnung ist:

#include <stdio.h> 
#include <stdlib.h> 
#include <errno.h> /* new */ 

int main (void) 
{ 
    if((cfPtr = fopen("test.dat", "rb+")) == NULL) { 
     printf("File could not be opened.\n"); 
     printf("Errno = %d\n, errno) ; /* new */ 
    } 
    return 0; 
} 
+1

Auch etwas wie 'perror (" fopen ")' würde Ihnen eine menschlich lesbare Fehlermeldung geben. –

Verwandte Themen