2010-10-29 5 views
1

J'ai fait un programme en C, mais il ne permet pas d'enregistrer sur c: \ unrépertoire \ FichierA.txtEnregistrer le fichier avec C fopen

J'utilise ceci:

FILE* m_hFile = fopen("c:\\SomeDirectory\\afile.txt", "a+t"); 
fprintf(m_hFile, "testing"); 
fclose(m_hFile); 

Pourquoi cela? Y a-t-il un dossier défini dans lequel je peux enregistrer?

SomeDirectory a été créé précédemment. J'utilise Windows 7 OS.

+0

'fopen' est de la bibliothèque standard C, pas la bibliothèque standard C++. – dreamlax

+0

ok j'ai changé la question – okami

+1

@Okami: problème de droits d'accès suffisant? –

Répondre

2

Il semble que "SomeDirectory" n'existe peut-être pas. Vous pouvez créer des dossiers avec C++ mais vous voudrez vérifier si quelqu'un est déjà là. Le simple appel de la commande open ne crée pas automagiquement le dossier. :)

4

Si fopen rencontre une erreur, il définit la variable errno indiquant quelle erreur s'est produite. Vous pouvez tester cela, ou encore plus simple, utilisez perror pour imprimer un message d'erreur qui vous dira ce qui a mal tourné:

FILE* m_hFile = fopen("c:\\SomeDirectory\\afile.txt", "a+t"); 
if (m_hFile == NULL) { 
    perror("fopen"); 
} 
+0

Sur Windows XP cela fonctionne, sur Win 7 le problème apparaît. J'exécute en tant qu'administrateur ... – okami

+0

Avez-vous essayé d'utiliser 'perror'? Quel message d'erreur obtenez-vous? – casablanca

+0

La perror est: échec de l'initialisation du fichier – okami

Questions connexes