Offer 驾到,掘友接招!我正在参与2022春招系列活动-刷题打卡任务,点击查看活动详情。
📢Hello,大家好,我是泽奀,一起学习进步(●'◡'●)
✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩
前言
"尽管自身在一个恶劣的情况下,我们也要保持一个有目标的♥“!
题目描述
请输入密码,然后输入 Y 是确认密码,N 是确认失败!
题目分析
- 首先我们要输入密码,那么我们就要创建一个数组。然后用输入函数scanf()进行输入密码
- 输入密码我们可以用getchar()输入函数,作用是向显示设备进行输入①个无符号字符。
- 但是在这里我们需要注意下:当我们程序scanf()函数在读取缓冲区时候有**\n(原因是因为我们回车输入的是'\n'),切记缓冲区会保留'\n'并不会把它读取。**
- 所以,我们应该把'\n'的这个字符给读取了,所以我们因该实现一个功能搭建while()循环直到把缓冲区的'\n'读取完毕。
- 程序实现:while ((ch = getchar()) != '\n');
- 读取完毕之后,我们再用getchar()输入函数输入①个单个字符。
- 然后,用判断输入 Y 是确认成功,N 是确认失败。如果不是输入这两个字符,那么就会打印出:宁输入的格式有误。
题目代码
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{
char password[20] = { 0 };
int ret = 0;
printf("请输入密码:");
//password是数组名,数组名本身就已经取地址了。
scanf("%s", password);
//当我们程序scanf函数在读取缓冲区时候有\n,所以我们应该把\n的这个字符给读取了!注意缓冲区会保留\n
while(getchar()!='\n');//过滤换行符
printf("请确认密码(Y/N):");
ret = getchar();//读取完毕之后,再进行getchar()的一个输入
if (ret == 'Y')
{
printf("确认成功!\n");
}
else if (ret == 'N')
{
printf("确认失败!\n");
}
else
{
printf("宁输入的格式有误!\n");
}
return 0;
}
注:使用gets()函数可以直接把输入的'\n'给一并读取了,此时就不需要用getchar()了
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
int main(void)
{ char password[20] = { 0 };
char ret = 0;
printf("请输入密码:");
//password是数组名,数组名本身就已经取地址了。
gets(password);
//当我们程序scanf函数在读取缓冲区时候有\n,所以我们应该把\n的这个字符给读取了!注意缓冲区会保留\n
//getchar();//过滤换行符
printf("请确认密码(Y/N):");
ret = getchar();//读取完毕之后,再进行getchar()的一个输入
if (ret == 'Y')
{
printf("确认成功!\n");
}
else if (ret == 'N')
{
printf("确认失败!\n");
}
else
{
printf("宁输入的格式有误!\n");
}
}
运行结果
- 请输入密码:123456
- 请确认密码(Y/N):Y
- 确认成功!
最后
那么本道题目的讲解就先到这里了,如果你学会了的话。就请继续关注这个系列,博主会坚持下去的,加油💪