前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >scanf与getchar连用注意事项

scanf与getchar连用注意事项

作者头像
秦jh
发布2024-01-19 10:21:49
990
发布2024-01-19 10:21:49
举报
文章被收录于专栏:c语言,c++c语言,c++

在用scanf输入后,用回车键换行,且下一语句为getchar时,getchar会被回车键(相当于'/n')使用,因为scanf不能读取回车键、空格键等。

代码语言:javascript
复制
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main()
{
	char password[10] = { 0 };
	printf("输入密码:");
	scanf_s("%s", password);
	printf("请确认密码:Y/N");
	int ch = getchar();
	if (ch == 'Y')
		printf("确认成功!");
	else
		printf("确认失败!");
	return 0;
}

当我们输入密码回车后,将会直接结束程序,因为此时'/n'被getchar读取了,导致确认失败。

如果我们想正常使用getchar时,需要在二者之间再加上一个getchar,用来吸收'/n',以保证原本意图的getchar的正常使用。

代码语言:javascript
复制
#include<stdio.h>
#define _CRT_SECURE_NO_WARNINGS
int main()
{
	char password[10] = { 0 };
	printf("输入密码:");
	scanf_s("%s", password);
    getchar();
	printf("请确认密码:Y/N");
	int ch = getchar();
	if (ch == 'Y')
		printf("确认成功!");
	else
		printf("确认失败!");
	return 0;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2024-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档