2012-01-27 28 views
1

我在「Windows 7 32bit」上使用「Visual Studio 2010」,並且正在進行「調試」構建。C - fopen有時可以工作,有時它不會

在我的節目我用的fopen使用此代碼訪問文件:

FILE *f = fopen("simple_test.asm", "r"); 

當我運行(F5),它返回一個空指針。 當我使用完整路徑時效果很好。

奇怪的是,當我通過cmd打開文件時,即使不使用完整路徑,它也可以像魅力一樣工作!

有人可以請說一說嗎? 謝謝!

+2

聽起來像工作目錄的問題。在'cmd'外殼中,您可能與visual studio用於運行程序的目錄不同。您應該能夠在「項目設置」中設置工作目錄:http://msdn.microsoft.com/en-us/library/kcw4dzyf.aspx – millimoose 2012-01-28 00:00:32

+0

調試器可能會使用不同的當前目錄啓動它。如果您將完全合格的路徑傳遞給fopen,它會起作用嗎? – 2012-01-28 00:01:00

+0

@ruakh我不喜歡猜測(太多)的答案,我只是重新發布,如果猜測結果是正確的。 – millimoose 2012-01-28 00:02:58

回答

1

Visual Studio 2010的當前目錄可能不是具有simple_test.asm的目錄。

就這麼簡單。

+0

謝謝你的工作! 顯然工作目錄設置爲* .vcxproj 和源文件,而不是帶有調試文件的目錄 – Danish 2012-01-28 00:09:33

1

fopen接受指定模式的第二個參數,「r」讀取「r +」讀取和寫入等等。

FILE *fopen(const char *path, const char *mode); 
+0

謝謝,忘了補充說我的問題(生病編輯) – Danish 2012-01-28 00:03:00

相關問題