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;
}
}
答案 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");
}
}
}