我正在阅读文本文件,我知道文本文件有多少行。我正在使用fgets读取一行,然后strtok将其分解成块。我正在尝试读取该行中的第一个字符,如果它是“P”或“A”则采取行动。我假设我可以将line视为字符数组。对不起,这个问题是超级基本的。我可以告诉我警告我做错了什么。有没有更好的方法来做下面的事情?
char line[1024];
while (i < LINE_MAX)
{
fgets(line, sizeof (line), fp);
strtok(line," ");
printf("%c",line[0]);
if (line[0] == "P")
printf("the letter is P\n");
if (line[0] == "A")
printf("the letter is A");
}
thread.c:在函数'main'中: thread.c:96:15:警告:指针和整数之间的比较[默认启用] thread.c:96:15:警告:与字符串文字比较导致未指定的行为[-Waddress] thread.c:98:15:警告:指针和整数之间的比较[默认启用] thread.c:98:15:警告:与字符串文字比较导致未指定的行为[-Waddress] 编译成功完成。
答案 0 :(得分:2)
您需要在C char
附近单引号。
if (line[0] == 'P'){}
""
用于字符串。
答案 1 :(得分:0)
我认为它应该可行但是只有当你删除Double引号(“”)时,因为它们用于String而不是Character。而不是line[0] == "P"
使用line[0] == 'P'
。