[英]fscanf loop not working properly
所以,我有以下代碼:
#include <stdio.h>
int main() {
FILE* f = fopen("test.txt", "r");
FILE* p = fopen("test2.txt", "w+");
double i;
char j;
while (!feof(f)){
fscanf(f, " %c", &j);
if ((j == '(')||(j == ')'))
fprintf(p, "%c ", j);
else {
ungetc(j,f);
fscanf(f, "%lf ", &i);
fprintf(p, "%.2lf ", i);
}
}
return 0;
}
我正在讀取的文件(test.txt)是這樣的:
13.3 3(
文件test2.txt是這樣的:
13.30 3.00((
但最后的括號不應出現。 為什么這兩次獲取最后一個字符?
您不應該那樣檢查feof()
。 相反,只需檢查fscanf()
的結果:
while (fscanf(f, " %c", &j) == 1) {
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.