C语言库函数使用说明(含操作符)

本文详细介绍了C语言中的库函数,如getchar、putchar及其使用场景,并探讨了各种操作符,包括算术、移位、位、赋值、单目、关系、逻辑等,以及操作符的优先级和类型转换。特别提到了整型提升在计算中的作用,以及如何处理输入缓冲区中的换行符问题。
摘要由CSDN通过智能技术生成


前言:

1.任何一个字符存储的时候在内存里存储的是它的ascii码值(整数int类型)。
2.照着文档写函数

3.库函数,自定义函数(有函数名,返回值类型,函数参数)

1.getchar,putchar函数

例子1:

int main()
{
   
	int ch = getchar();
		putchar(ch);
	return 0;
}

例子2:

int main()
{
   
	int ret = 0;
	char password[20] = {
    0 };
	printf("先输入密码\n");
	scanf("%s", password);
	printf("请确认(y/n)");
	ret = getchar();
	if (ret =='y')
	{
   
		printf("正确");
	}
	else
	{
   
		printf("错误");
	}
	return 0;
}

假设一:如果我们输入123456敲回车,就没有getchar函数的执行过程,则结果为:

Alt

解释:执行逻辑和我们想要的逻辑有区别:password,getchar都为输入函数,输入函数要先检测输入缓冲区,这个区可能会放一些数据,输入函数在接收数据的时候。先是scanf函数去读输入缓冲区(起始什么都没有,等待输入东西),一旦输入缓冲区有东西,scanf函数拿走一部分,拿走之后scanf函数过去,getchar函数到来, (例如,你输入123456后敲击回车键让scanf函数读取123456,缓冲区保留\n),然后getchar读取\n,没有等待。

解决方案:(解决如何让输入缓冲区里面没有‘\n’)用一个getchar()读取‘\n’

int main()
{
   
	int ret = 0;
	char password[20] = {
    0 };
	printf("先输入密码\n");
	scanf("%s", password);
	getchar();//读取‘\n’
	printf("请确认(y/n)");
	ret = getchar();
	if (ret =='y')
	{
   
		printf("正确");
	}
	else
	{
   
		printf("错误");
	}
	return 0;
}

假设二:加入getchar()后当我们输入123456 (空格)ABCD,则出现结果为:

Alt
分析:输入123456 ABCD,scanf函数读走123456,getchar读走空格,ret=getchar()一句读走了’A’,所以打印错误。

<font color="orae" size="3">解决方案:加入循环,直到读至‘\n’跳出循环。

int main()
{
   
	int ret = 0;
	int ch = 0;
	char password[20] = {
    0 };
	printf("先输入密码\n");
	scanf("%s", password
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值