Открытие файлов для редактирования - PullRequest
0 голосов
/ 30 ноября 2010

У меня проблемы с открытием основного файла. Я не могу успешно инициировать файловый поток. Это возвращается NULL ... Может кто-нибудь сказать мне, что я скучаю? Я создал файл «test.dat» в том же каталоге, в котором находится исходный код.

#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;
}

Ответы [ 4 ]

1 голос
/ 30 ноября 2010

Вы можете использовать ошибку, чтобы получить подсказку о том, что идет не так:

#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 голос
/ 30 ноября 2010

Когда вы пытаетесь открыть файл, ваша ОС будет искать в любом процессе текущий каталог .Это может быть, а может и не быть тем же каталогом, в котором находится ваш исходный файл, в зависимости от вашей ОС и / или IDE.

1 голос
/ 30 ноября 2010

Вы используете Visual Studio?Вы должны поместить test.dat в каталог Debug.В новой версии есть два каталога отладки, вы должны проверить это сами.

1 голос
/ 30 ноября 2010

Попробуйте переместить файл test.dat в каталог, где находится скомпилированный .exe, или, если текущий каталог приложения находится где-то еще, поместите файл в этот каталог.

...