提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
关于标准输入输出函数的一点理解
前言
对当前的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函数特点类似,可以输出空格,在输出结束后也会默认添加回车。


被折叠的 条评论
为什么被折叠?



