栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言 2021-10-31学习笔记

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言 2021-10-31学习笔记

缓冲区问题
#include
int main(){
	int ret=0;
	char password[20]={0};
	printf("输入密码:>");
	scanf("%s",password); 
	printf("确认密码(YN);>");
	ret=getchar();
	if(ret=='y')
	{
		printf("succeed");
	}
	else{
		printf("false");
	}
}

*在输入密码的途中会手动敲一个回车用于执行密码输入的命令,但是这个回车会在缓冲区被写入然后直接被下一个确认命令读取,所以需要在输入密码下面加一个getchar();先一步清空缓冲区。

#include
int main(){
	int ret=0;
	char password[20]={0};
	printf("shu ru mi ma:>");
	scanf("%s",password);
	getchar(); 
	printf("que ren(Y\N);>");
	ret=getchar();
	if(ret=='y')
	{
		printf("succeed");
	}
	else{
		printf("false");
	}	
}
*或者直接用一个while循环去掉所有会在缓冲区的额外字符



```c
#include
int main(){
	int ch =0;
	int ret=0;
	char password[20]={0};
	printf("shu ru mi ma:>");
	scanf("%s",password);
	while((ch=getchar())!='n')
	{
		;
	}
	printf("que ren(Y\N);>");
	ret=getchar();
	if(ret=='y')
	{
		printf("succeed");
	}
	else{
		printf("false");
	}
	
	
}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384515.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号