gpt4 book ai didi

c - scanf 函数如何工作?

转载 作者:太空宇宙 更新时间:2023-11-04 07:34:21 25 4
gpt4 key购买 nike

我已经编写了以下代码,但是出现了问题

char p[20];
int n;
errno = 0;
n = scanf("%[^\n]",p);
if (1 == n)
{
printf("%s\n",p);
scanf("%[^\n]",p); /*no waiting for input*/
printf("%s\n",p);
}

最佳答案

n = scanf("%[^\n]",p);

这表示扫描除 \n 之外的每个字符,即 ENTER 键。所以它允许你输入一个字符串,你会按下 ENTER。此 ENTER 字符仍在 stdin 缓冲区中,它将终止您的下一个 scanf 语句

scanf("%[^\n]",p);/*no executed*/

因此在您看来它无法执行! scanf,首先从缓冲区中读取,如果在那里找不到足够的数据,然后等待您的输入。

将您首先输入的 ENTER 提供给某些函数,例如 getchar()。即在你的第二个 scanf 之前添加一个 getchar() 现在你的第二个 scanf 将接受来自 stdin/的输入p>

有点像

if (1 == n)
{
printf("%s %d\n",p,n);
getchar();
scanf("%[^\n]",p);/*no executed*/
printf("%s\n",p);
}

关于c - scanf 函数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10301259/

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