c - 字符串操作中的问题

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

    } 

最佳答案

您正在混合使用 char 和 char 指针。一种可能的正确方法是(代码未经测试):

char atrbt;
FILE *fp;

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

关于c - 字符串操作中的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44853110/

相关文章:

c - 关于套接字/tcp 连接的多线程的问题

c++ - 为什么 printf 不在这里打印?

c++ - 在 cygwin 中使用 make : "cannot execute binary file" 编译的 C 程序

c - 保持与内联函数的汇编的兼容性

c - 内联函数

c - 不明白这个语法

HTTP/1.1 Body 可以包含像 "\r\n"这样的字符串吗?

c++ - 构建小型中小企业客户端的未定义引用

c - 条件运算符的问题

c - 在外部汇编程序中修改 C 数组