【发布时间】:2016-04-06 17:20:50
【问题描述】:
#include <stdio.h>
#include <string.h>
int main(int argc, char* argv[]) {
FILE* file = fopen("questions-words.txt", "r");
char line[256];
while (fgets(line, sizeof(line), file) != NULL) {
if (line[0]==":") {
continue;
}
printf("%s", line);
}
fclose(file);
return 0;
}
您好,我试图打印文件的行并跳转以“:”开头的行,但它似乎不起作用。 我也无法打印 line[0] 它会发出警告,因为“line is type int”
【问题讨论】:
-
代码不应该编译
if (line[0]==":"){(或者,至少应该产生警告)。您不能将字符与字符串进行比较;请改用':'。注意编译器警告——编译器对 C 的了解比你多得多,如果它发出警告,你应该假设它是正确的,并且应该修复你的代码,这样它就不会警告你。 (在使用file之前,您还应该检查fopen()是否成功;如果无法打开文件,您的程序可能会崩溃。...在user1320881 添加相同评论时添加。) -
也总是测试打开文件是否成功。
-
非常感谢。我只是想尽可能地发布最简化的代码,但也感谢您提供的提示