log.txt文件由一些数据组成。程序查找“:”并在找到时打印“Done”。程序编译成功,但从未打印“完成”。

char *atrbt ;

    FILE *fp;
    int i = 0;

    if (fp = fopen("log.txt", "r+")) {
        while (fscanf(fp, "%c", &atrbt) != EOF) {
            printf("%c", atrbt);
            if(atrbt[i] == ':') {          <------------ Issue
                printf("Done");
            }
            ++i;
        }

    }

最佳答案

您在char和char指针之间进行混合。可能的正确方法之一是(代码未经测试):

char atrbt;
FILE *fp;

if (fp = fopen("log.txt", "r+")) {
    while ((atrbt = getc(fp)) != EOF) {
        printf("%c", atrbt);
        if(atrbt == ':') {
            printf("Done");
        }
    }
}

10-07 20:23