gpt4 book ai didi

c - 如何强制 scanf 将\n 字符作为输入?

转载 作者:太空狗 更新时间:2023-10-29 15:51:56 25 4
gpt4 key购买 nike

我试图在一个无限的 while 循环中输入字符串,每次都将字符串保存在同一个数组中,但我希望这个循环在我按下 Enter

代码看起来像这样:

int main()
{
char input[1000];
while (1)
{
scanf("%s",input);
if (input[0] == '\n'){ break; } //the problem is that scanf never gets the \n
else{...}
}
return 0;
}

最佳答案

换行符 \n 被视为空白字符。

如果您阅读了 C11 规范,您可以看到第 7.21.6.2 章,关于 %s 格式说明符和 scanf()家庭

s

Matches a sequence of non-white-space characters.

因此,使用带有 %sscanf() 调用,您不能获取(仅)\n,这确实是一个空白租船人。

您需要使用 getc()阅读换行符。

或者,您可以使用 fgets() 实际上读取并存储尾随的换行符。

FWIW,int main() 至少应该是 int main(void)

关于c - 如何强制 scanf 将\n 字符作为输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33739917/

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