«fopen» завершается ошибкой, если файл открыт в Visual Studio - PullRequest
1 голос
/ 12 октября 2010

У меня есть следующий код:

FILE *fp = fopen( srcFile.filename.c_str(), "rt");

srcFile является файлом main.cpp решения и, таким образом, открывается в решении.fopen возвращает значение NULL большую часть времени (но не тогда, когда я вступаю в него, что странно).

Однако, когда я закрываю main.cpp в Visual Studio, код работает.Даже когда файл открывается в Notepad ++.

Есть ли обходной путь?

PS: я пометил его как C, но файл скомпилирован как C ++, IDK, если он что-то изменит.*

Ответы [ 2 ]

1 голос
/ 12 октября 2010

Я думаю, что это может быть связано с тем, что рабочий каталог (папка) отличается при работе в Visual Studio.Если это так, то использование абсолютного пути к файлу («C: \ folder \ other-folder \ file.txt») вместо относительного пути («file.txt») должно заставить его работать.

0 голосов
/ 12 октября 2010

Пусть C напечатает сообщение об ошибке:

FILE *fp = fopen( srcFile.filename.c_str(), "rt" );
if( !fp ) 
{
  perror( srcFile.filename.c_str() );
  exit( 1 );
}
...