C语言scanf输入

发布于 2022-01-01 17:24:41 字数 171 浏览 707 评论 2

不知道为什么,在运行到给cChar赋值的时候,步骤跳过去了。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

归属感 2022-01-07 00:41:29

我发现,我的问题好像都是你回答的呢,非常感谢。感觉你好厉害,我也要加油。

长安忆 2022-01-06 11:23:40

用户输入数量之后的回车键 'n' , 也是一个字符。应当调用 getchar() 将这个字符 'n' "吃掉"。这样才能顺利地进行下一步。
将楼主的代码修改如下:

#include <stdio.h>
int main(){
	float fDues;
	float fAmount;
	int iOntime;
	char cChar;
	printf("输入数量(金额):n");
	scanf("%f",&fDues);
	getchar();
	printf("是否及时在时间内?(y/n)n");
	scanf("%c", &cChar);
	iOntime = (cChar=='y')? 1:0;
	if (iOntime==1)
	printf("The amout due is : %10.2fn",fDues);
	else
	printf("超时n");
	
	return 0; 	
}

输出:

输入数量(金额):
312.55
是否及时在时间内?(y/n)
y
The amout due is :     312.55

注意:清空键盘缓冲区,也可以用:fflush(stdin);   /*清空缓冲区,也可以使用rewind(stdin);*/

参考:

C语言编程 - 清空键盘缓冲区

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文