我见过类似的问题,但没有人帮助过我。我想检查用户输入是否等于" q"如果它然后退出程序,但永远不会返回0。
我已经看到字符串需要以NULL(\ 0)值终止,但我不知道如何以我工作的方式执行此操作。我有以下内容:
char *input = "\0";
linelen = getline(&input,&len,stdin);
if(strcmp(input, "q")==0)
{
return;
}
我的问题是,如果可能的话,我真的想要使用getline,因为它非常适合我需要做的事情,如果我将输入更改为char * input [2]我不能使用getline而不会导致问题
(当我在程序中键入q时,它返回10.此外,我对C很新,所以对任何愚蠢的错误感到抱歉。)
编辑:执行以下操作时,我得到了10的结果:int j = strcmp(input, "q");
printf("%d", j);
INPUT:
q
OUTPUT:
10
答案 0 :(得分:1)
getline
从输入包含行尾的新行中读取一行。因此,您q
的输入实际上是字符串"q\n"
,它与"q"
不同,因此会进行不同的比较。