如果在Visual Studio中打开文件,'fopen'将失败

时间:2010-10-11 21:15:14

标签: c visual-studio-2008 fopen

我有以下代码:

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

srcFile碰巧是解决方案的main.cpp文件,因此在解决方案中打开。 fopen大部分时间都返回NULL(但是当我进入它时不会,这很奇怪)。

但是,当我在Visual Studio中关闭main.cpp时,代码可以工作。即使在Notepad ++中打开文件。

有解决方法吗?

PS:我将其标记为C,但如果文件发生任何变化,该文件将编译为C ++,IDK。

2 个答案:

答案 0 :(得分:1)

我认为这可能与在Visual Studio中运行时工作目录(文件夹)不同有关。如果是这种情况,那么使用文件的绝对路径(“C:\ folder \ other-folder \ file.txt”)而不是相对路径(“file.txt”)应该可以使它工作。

答案 1 :(得分:0)

让C打印错误消息:

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