您好我写了一个函数,从文件中输入一个字符串,然后打印出答案,现在我的循环正在执行更多,然后文件有行: 这是我的代码:
void CalculateAll()
{
char str[SIZE];
int ans;
FILE* p = fopen("Expressions.txt", "r");
if (p == NULL)
{
printf("FAIL");
return;
}
while (!feof(p))
{
int i = 0;
fgets(str, SIZE - 1, p);
while (str[i] != '\n')i++;
str[i] = 0;
ans = CalculateExpression(str);
printf("%d\n", ans);
}
}
文件有
121 + 34 =
562 + 45 =
100 / 10 =
输出应为
155
607
10
但我得到了:
155
607
10
10
并且我的循环再次运行,即使我到达文件的末尾,是否有人有想法? 编辑:它不是同一个问题..
当我将代码更改为此时,我的第一行就消失了:
void CalculateAll()
{
char str[SIZE];
int ans;
FILE* p = fopen("Expressions.txt", "r");
if (p == NULL)
{
printf("FAIL");
return;
}
while ((fgets(str, SIZE - 1, p)))
{
int i = 0;
fgets(str, SIZE - 1, p);
while (str[i] != '\n')i++;
str[i] = 0;
ans = CalculateExpression(str);
printf("%d\n", ans);
}
}