while( (c = fgetc(stdin)) != EOF ){
count++;
if (count == lineLen - 1){
moreChars = (char*) realloc(line, lineLen *=2);
if(moreChars == NULL){
puts("Error allocating for moreChars.");
free(moreChars);
exit(-69);
}
else
line = moreChars;
}
line[count - 1] = c;
}
这是我的代码。我的问题是,当用户输入(ctrl + d)结束循环时,他们必须输入两次,即结束循环用户类型(ctrl + d)(ctrl + d)。
示例输入:
你好兄弟(ctrl + d)(ctrl + d)
理想输入:
你好吗(ctrl + d)
更清楚地说明:
我希望用户只需输入(ctrl + d)一次即可结束循环,并且无法弄清楚为什么要使用(ctrl + d)(ctrl + d)来结束循环。< / p>
感谢。
答案 0 :(得分:0)
c
如何定义? fgetc()返回一个int,EOF是一个int。如果c是char,则它们将不匹配。