簡體   English   中英

fscanf循環無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM