我試圖讀取具有以下格式的.txt,以便創建一個大小爲26的數組(每個字母爲1)。在字母數字字符串中存儲整數值
a 5
b 2
c 4
d 10
e 11
f 5
g 7
...
我試圖下面與(非工作)執行此操作代碼,發送空VEC [26]作爲一個參數,以及其中包含在每個字的值中的.txt:
void readvalues(FILE*values, int*vec)
{
if (values == NULL)
{
printf("Couldn't open values' file\n");
exit(0);
}
int i=0;
while (i<26)
{
fscanf(values,"%d",&vec[i]);
printf("%d\n",vec[i]);
i++;
}
}
當我檢查printf輸出時,我發現vec [0]是正確的,但是此函數開始在其餘位置存儲垃圾。 這是什麼原因造成的?我該如何解決?除fgets之外,還有其他fscanf的選擇嗎?
預先感謝您。
@Jose你需要檢查'fscanf'返回你所期望的匹配數量。在你現在的代碼中,'1',在R Sahu的答案中,'2'。這就是爲什麼你看到*垃圾* - 因爲'fscanf'沒有存儲*任何*那裏。 –