[英]C, Reading A Text File
如果這是一個愚蠢的問題,我感到很抱歉,但是我嘗試了許多不同的資源,但仍然沒有得到想要的東西。 我正在研究一個從文本文件讀取的程序,在下面的代碼中,我試圖讀取第一行,該行將給我提供在其下創建的電阻器顏色代碼的數量。 我正在嘗試讀取數字(n)並簡單地打印以查看其讀數,但是我什么也沒得到。 看起來很簡單,但我似乎無法理解。
`FILE *fpinpt;
FILE *fpoutpt;
FILE *fpnom;
int n, *ptr;
double a, b, c, d, e, f, g, h, i, j, k, l;
fpinpt= fopen("F:\EGR 107\EE\HW 4\resistorInput.txt","r");
fpoutpt= fopen("F:\EGR 107\EE\HW 4\resistorOutput.txt","w");
fpnom= fopen("F:\EGR 107\EE\HW 4\resistorNominal.txt","w");
fscanf(fpinpt,"%d\n",n);
printf("%d",n);
ptr=(int*)calloc(n, sizeof(int));
if (fpinpt==NULL)
{
printf("Error reading resistor file\n");
fclose(fpinpt);
}
if (ptr==NULL) printf("Error, memory not allocated\n");
`
在你的代碼中
fscanf(fpinpt,"%d\n",n);
應該
fscanf(fpinpt,"%d",&n);
另外,請始終檢查fscanf()
, fopen()
的返回值,以確保正確的輸入/操作。
就是說,您不需要 malloc()
和family的返回值。
問題的主要原因是,您永遠不會檢查錯誤。 對於每個fopen()
,必須有一個
if (fopenedFile == NULL)
ohNoMust_ICannotUse_fopenedFile();
現在,為什么您的fopen()
失敗了是因為您沒有轉義'\\'
字符,所以每個文件名都應該像這樣修復它
"F:\\EGR 107\\EE\\HW 4\\resistorInput.txt"
然后,將打開文件,但是fscanf()
將無法工作,因為已經解決了其他答案(“ 在編輯我的我的代碼時 ”)。
注意 :
請閱讀兩個答案,重復@ SouravGhosh已經說過的話是沒有意義的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.