gpt4 book ai didi

继续 while 循环直到 char == EOF

转载 作者:行者123 更新时间:2023-12-04 11:23:43 28 4
gpt4 key购买 nike

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)。

示例输入:

hi there you guy dood (ctrl+d) (ctrl+d)

理想输入:

hi there you guy dood (ctrl+d)

为了更清楚:

我希望用户只需输入一次 (ctrl+d) 即可结束循环,无法弄清楚为什么用户必须输入 (ctrl+d)(ctrl+d) 来结束循环。

谢谢。

最佳答案

c 是如何定义的? fgetc() 返回一个 int,EOF 是一个 int。如果 c 是一个字符,它们将不匹配。

关于继续 while 循环直到 char == EOF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14541559/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com