gpt4 book ai didi

c - 我的第二个 Scanf() 被跳过

转载 作者:太空宇宙 更新时间:2023-11-04 08:15:01 27 4
gpt4 key购买 nike

如果我的程序是这样的:

printf("What are your 2 favourite fruits:\n");
scanf("%s", s1);
printf("What are your 2 least favourite fruits:\n");
scanf("%s", s2);

我的第一个 Scanf() 中有一个空格,第二个 Scanf() 被跳过。

输出看起来像这样:

你最喜欢的两种水果是什么:苹果和橙子

你最不喜欢的两种水果是什么:(不等待输入)

我应该怎么做才能解决这个问题?

最佳答案

scanf() with %s 不接受包含空格的字符串。

对于有空格的字符串,使用 fgets()scanf("%[^\n]s", string);
这将读取所有内容,直到换行符 '\n'。

例如:

printf("What are your 2 favourite fruits:\n");
scanf("%[^\n]s", s1);
printf("What are your 2 least favourite fruits:\n");
scanf("%[^\n]s", s2);

关于c - 我的第二个 Scanf() 被跳过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36268404/

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