2017-03-21 214 views
-2

我正在嘗試逐行讀取.txt文件,其中每行都有兩個單詞和兩個整數。從C文件中逐行讀取

目前我正在用的fscanf一個循環,但我嘗試打印的價值觀和執行任何打印:

while{fscanf(filename,"%s %s %d %d", first,second,&num1,&num2) == 1) 
{ 
     printf("%s %s %d %d", first,second,num1,num2); 
} 

不正常打開我檢查了該文件,所以問題是,值不被正確讀入。 fscanf()是我應該使用的函數嗎?如果沒有,我也許聽說過fgets(),但是我不知道如果我有兩個字符串和兩個整數,這將如何工作。 任何幫助,將不勝感激。

+3

請閱讀'fscanf'的手冊頁以找出正確的返回值以便與 –

+1

進行比較。使用'fgets'來讀取整行。然後用'sscanf'或/和'strtol'掃描。 – i486

+0

感謝您的建議,這是我的第一個學期編碼,並沒有意識到有一個手動哈哈。問題是通過將fscanf == 1更改爲fscanf == 4來解決的,因爲有4個變量被匹配 –

回答

1

更換

while{fscanf(filename,"%s %s %d %d", first,second,&num1,&num2) == 1)

while(fscanf(filename,"%s %s %d %d", first,second,&num1,&num2) == 4)

1

的fscanf的返回值是項目的數量讀取所以你的情況,函數返回4,並且總是不等於1,因此循環的主體不執行。