【发布时间】:2010-10-06 04:25:40
【问题描述】:
我有一个 C 程序在我进入 while 循环时遇到错误。
我初始化一个变量(fragmentcount)并使用 fscanf 写入它并为其分配一个值 4(这可行)
int fragmentCount;
if ((fscanf(fp, "%i", &fragmentCount)) == 1) {
...
}
但是,当我尝试在下面的 while 循环中访问它时,fragmentCount = 0
while ((fscanf(fp, "%[#]", discards)) != EOF) {
printf(fragmentCount); // <- pseudocode
}
作为一个简短的实验,我尝试去掉 fscanf 作为 while 循环的条件测试,fragmentCount 是正确的值 (4)。
为什么会这样?我怎样才能避免这种情况?
【问题讨论】:
-
更多的是把#读入字符串丢弃,而不是避免EOF