2014-03-04 120 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发生在我们最好的:)。 –