"); -6ren">
gpt4 book ai didi

c - C语言获取int后获取用户字符串

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

我不明白为什么这段代码不能正常工作:

#include<stdio.h>

int main()
{
char string [100];
int a;
printf(">");
scanf("%d", &a);
printf(">");
gets(string);
printf("%s\n", string);
}

这是我必须构建但我不能构建的程序的一小部分 理解为什么在通过 scanf() 函数获取值后, 程序只是跳过或没有正确读取 gets() 的字符串 功能。如果您将代码复制到编译器中并尝试运行,您将 明白我的意思。

最佳答案

%d 说明符不会吃掉换行符(或其他空白)。试试这个:

scanf("%d ", &a);
^

那个空格使 scanf 丢弃所有的空白,直到一个非空白。顺便说一下,您的问题与此非常相似 C FAQ .


  • 不要使用 gets,它太糟糕了,甚至不再使用该语言。使用 fgets 代替
  • 不要相信任何为您的问题建议 fflush(stdin) 的人

关于c - C语言获取int后获取用户字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10820217/

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