gpt4 book ai didi

c++ - 从 getchar 读取输入

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:08:17 26 4
gpt4 key购买 nike

while(1)
{
if(i == 6)
break;
temp[i] = getchar();
putchar(temp[i]);
i++;
}

每当我必须以这种方式使用 getchar 时,它也接受 enter 作为输入之一,因此我只能输入三个字符而不是 6 个。为什么 getchar 将 enter 作为输入之一?如何避免这种情况?

输入:

1
2
3

此循环中断后,因为按下的三个返回被视为 temp[1]、temp[3] 和 temp[5] 的三个输入。

最佳答案

getchar 一次读取一个字符。在按下 Enter 键时,您将换行符 \n 传递给 C 标准缓冲区,该缓冲区也会在下次调用 时由 getchar 读取>获取字符。为了避免这个 \n 字符,你可以试试这个

while(1)
{
if(i == 6)
break;
if((temp[i] = getchar()) != '\n')
{
putchar(temp[i]);
i++;
}
}

另请阅读此 answer了解 getchar 的工作原理。

关于c++ - 从 getchar 读取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20741347/

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