我正在使用Xcode版本3.1.3來編輯和編譯C程序。當我嘗試讀取.dat數據文件時,雖然該程序在Linux計算機上正常工作,但它不起作用。在C中讀取數據文件
我將數據文件放入項目的生成文件夾中。我不知道爲什麼它不起作用。 這是代碼:
#define courseFile "course.dat"
FILE * in; /*FILE pointer to do the stream IO*/
in = fopen(courseFile, "r+");
我正在使用Xcode版本3.1.3來編輯和編譯C程序。當我嘗試讀取.dat數據文件時,雖然該程序在Linux計算機上正常工作,但它不起作用。在C中讀取數據文件
我將數據文件放入項目的生成文件夾中。我不知道爲什麼它不起作用。 這是代碼:
#define courseFile "course.dat"
FILE * in; /*FILE pointer to do the stream IO*/
in = fopen(courseFile, "r+");
我上堆棧溢出的臨時變通的答案從dougpan。這就是他所說的。
這是一個很好的問題...我有一個臨時的解決方法,回答... 我確實尊重您關於問題而不是您的代碼的請求。 作爲一個快速的臨時答案,我現在唯一的答案就是現在修改您的代碼,如果您只是隨您的數據文件一起調試代碼。我知道硬編碼你的文件位置是一個不錯的,但爲了調試的目的,以下將讓你在路上遇到這個顛簸。您可以嘗試將目錄位置與數據文件一起硬編碼,以便您的代碼可以找到它。例如,假設您的Mac上的用戶目錄是jerryletter,您可以將Data.txt文件複製到Users目錄〜/ jerryletter。然後可以修改只有一行代碼的如下所示:
strcpy(file_name,"/Users/jerryletter/Data.txt");
因此,它是一個Xcode IDE問題。看到我的理由和答案在這裏:https://stackoverflow.com/a/24266915/3565426
不是Xcode的問題。 -----您是否檢查過生成的可執行文件和數據文件的* full *路徑?值得寫下後者,然後在代碼中使用它。 G。 '/用戶/ ME /文檔/ data.dat'。 – 2013-07-14 18:10:17
這可能是一個XCode問題,因爲當您運行可執行文件時,當前目錄是IDE的一個屬性,而不是程序本身。如果二進制文件是一個特定的目錄,並且數據文件位於同一個目錄中,並且二進制文件是從命令行運行的,它就會找到該文件。如果IDE具有不同的當前目錄,則二進制文件可能找不到該文件。而且,總的來說,文件名最好用程序參數表示,而不是程序中的硬連線名稱。但是,這也會讓IDE變得棘手 - 您能否方便地爲程序指定參數? –