关于标准输入输出函数的一点理解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

对当前的scanf、printf、getchar()、putchar()的踩坑之处做一点分析和整理。

一、scanf

scanf("%d %s %p %f ",&a,&b,&c,&d);

备注:将输入的变量保存在a、b、c和d中。
该函数以空格来分割每个变量,当变量都分配完之后,会把剩下的空格、剩下的字符和回车键都留在缓存区。怎么清空呢?
采用getchar( )

#include<errno.h>

int main()
{
	char arr[10] = {0};
	char ch = 0;
	scanf("%s", &arr);
   while ((ch = getchar()) != EOF) 
   	{
     putchar(ch);  // 将字符输出到屏幕上
   	}
	return 0;
}

输入:abcd edf
输出:空格edf

在这里插入图片描述
1.scanf函数只能读取空格之前的数据,本例中并未读取,可以体现scanf函数不能读取空格的特性。
2. EOF即是end of file的缩写,意思是文件的结尾,当scanf读取不到数据或者读入错误时,会返回EOF,EOF的本质或者说他的值是-1,下图是VS源码对EOF的定义。
在这里插入图片描述

二、printf

1.格式化输出

printf("%#6.3f")

%[填充字符][填充宽度] . [保留几位小数] 转换说明符

三、getchar

1.作用

getchar函数是一个读取字符的函数

2.用法

getchar函数的语法

char ch = getchar( )

1、该函数并无参数,返回值是从键盘上读取的字符,如果读取错误或者无法读取数据则返回EOF。
2、需要注意的是,getchar() 函数会读取用户输入的所有字符,包括空格、制表符和换行符等。

四.putchar函数

putchar函数是一个输出函数,将字符打印到屏幕上,使用前需引用stdio.h文件

(1)putchar函数的语法

putchar(字符常量或变量);

该函数不仅仅能将字符常量或变量作为参数,还可以将int型的变量或常量作为参数,当将int型作为参数时,作用是打印该整型对应的ASCII值。

五.gets函数和puts函数

1.gets的语法

获取字符串,保存到数组中

gets(字符数组名);

该函数有以下需要注意点:
1.gets函数可以读取空格。
2.gets函数在读取结束后,默认加一个回车。

2.puts的语法

puts(字符数组名);
该函数与gets函数特点类似,可以输出空格,在输出结束后也会默认添加回车。
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值