我是C新手,我只是想讀取我在C中創建的簡單文本文件。我通過單擊新建 - >空文件 - >保存它到我想要的位置,然後添加文件擴展名(.txt),文本文件包含樣本數獨板,完整文件名爲sudokuchar.txt。如何從文本文件中讀取我在C中創建
我從文件中讀取和打印的代碼是:
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fpointer = fopen("sudokuchar.txt", "r");
char input[100];
while(fgets(input,100,fpointer))
{
printf("%s",input);
}
fclose(fpointer);
}
所以當我編譯程序不顯示任何信息,並返回-1。我假設我想從中讀取的文件有問題?如果有人能幫助它將不勝感激。
「我想要的位置」 - 除非那個期望的位置也是您的進程在運行時的活動工作目錄,否則發佈的代碼將無法找到該文件,而'fopen'將返回NULL。沒有檢查,而是錯誤地認爲它剛剛工作,傳遞NULL作爲文件指針到'fgets',然後調用* undefined behavior *。它似乎有一些錯誤檢查和運行時啓動配置更改是按順序。 – WhozCraig
那麼我如何將文件保存到活動的工作目錄? – katDouglas
另請注意,'main()'是類型爲'int'的函數,並且應該在退出時返回0或正8位*值(例如'return 0;'如果沒有錯誤, 255'錯誤)。還要注意,'main'的正確聲明是'int main(void){...'或'int main(int argc,char * argv []){...'(您會看到相同的'char ** argv'而不是'* argv []',並且還有一些編譯器接受的其他非可移植參數)。這不會導致讀取失敗(最可能出現'fopen'失敗),但獲得正確的基礎幫助。 –