字符串操作中的问题

时间:2017-06-30 18:51:10

标签: c gcc

log.txt文件包含一些数据。该程序查找“:”,当它发现它打印“完成”。程序编译成功但从不打印“完成”。

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;
        }

    } 

1 个答案:

答案 0 :(得分:2)

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

char atrbt;
FILE *fp;

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