-1

为什么我得到这个,是getchar()功能吗?

printf("Type stop to end connection");
    while ((d=getchar()) != '\n' && i < MAXLENGHT){
    buf2[i++] = d;
}
buf2[i] = '\0';
dfg = strlen(buf2);}
while (d != 'stop'); // here the error
close(sockfd);
exit(0);

}

4

2 回答 2

4

单引号表示char文字。通常这意味着一个字符。允许使用多字符文字,但标准说它们的含义是实现定义的。'stop'由于字符过多,您的实现似乎无效。

无论如何,我很确定您不打算编写多字符文字。查看代码片段,我认为您的意思是将输入读入字符串并用于strcmp测试与字符串的相等性"stop"

于 2013-01-06T21:10:40.907 回答
1

除了语法错误('' 而不是 ""),您可能还想比较字符串:

while (strcmp(buf2, "stop") != 0) ...
于 2013-01-06T21:12:32.073 回答