2014-03-04 117 views
0

我基本上使用C函數fscanf()從文件中讀取數據。使用fopen並檢查它我知道文件正在通過檢查返回值成功打開。fscanf從文件中讀取

該文件格式化爲Char,Int,Int。我的問題是我一次只能讀一行,並退出循環。希望如果有人可以看到我錯了

char c;  
char nl;  
int t1, t2; 
int dataTest; 
do 
{ 
    dataTest = fscanf(fp, "%c %d %d", &c, &t1, &t2); 
    fscanf(fp, "%c", &nl); 
    printf("%c %d %d \n", c, t1, t2); 
    if (dataTest = -1) 
    { 
     break; 
    } 
}while(1); 
+0

爭取最小的例子。在這種情況下,大部分代碼(&description!)不是重現問題所必需的。 –

回答

2

你想

if(datatest==-1)

而不是

if(datatest = -1)

一個測試平等,而另一種是轉讓表達。 C中的任何「分配表達式」將返回變量分配的值。因此,例如,datatest= -1將返回-1

+0

啊愚蠢的錯誤!感謝您指出了這一點。等待10分鐘,因爲我不能給你的答案解決方案 – lecardo

+0

@Bobski發生在我們最好的:)。 –