目录:
-------------------------------------------------------------输入------------------------------------------------------------
一:getchar
1.定义
getchar函数是字符输入函数,其功能是从键盘上获取一个输入字符
2.声明头文件
#include <stdio.h>或#include "stdio.h"
3.返回值
为用户输入的ASCⅡ码,出错返回-1
4.读取方式
从标准输入(键盘)里读取下一个字符,用户输入的字符被存放在键盘缓冲区中.直到输入回车键才从缓冲区依次提取字符,当用户键入回车之后,getchar会从输入流中读取第一个字符
5.需要用getchar()吃掉回车的几种情况
1. 前面有scanf 后面也要用scanf()时,中间要用一个空的getchar()吃回车;
2. 前面有scanf,后面要用ch=getchar()接收字符时,中间要用一个空的getchar()吃回车;
3. 2个ch=getchar()中间需要一个空的getchar()吃回车。
6.注意
1.getchar只能输入一个字符。如果你输入多个字符,它只接受第一个字符;
2.如果输入流缓冲区中没有数据,那么getchar就会处于等待状态,从而使程序窗口停留。这也是为什么getchar可以作为暂停函数的原因;
二:scanf
1.定义
格式化输出函数, 用于向标准输入设备按规定格式输入信息, 并且可以输入各种数据类型,还可以有参数。scanf()函数.是格式输入函数,即按用户指定的格式从标准输入设备(键盘) 上把数据输入到指定地址的变量中。
2.声明头文件
stdio.h
3.一般格式
scanf(格式控制,地址列表) 也就是scanf("%?",&?);
4.一般形式
%[*][输入数据宽度][长度]类型 其中有方括号[]的项为任选项
5.返回值
返回成功读入的数据项数,读入数据时遇到了“文件结束”则返回EOF。
6.读取方式
可以读取相对于类型的数值并且存储到制定变量,并且可以读取多个数值,如数字,字符,字符串等
7.注意
scanf()在读取数字时会跳过空格、制表符和换行符!
三:gets
1.定义
从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取,所以程序员应该确保buffer的空间足够大,以便在执行读操作时不发生溢出。
2.声明头文件
stdio.h
3.结束方式
gets()以Enter结束输入,但可以接受空格
4.结束敲回车时的状态
会舍弃最后的回车符!
5.读取方式
并且gets()可以读取多个字符【就像%c字符与getchar()对应而%s字符串与gets()对称】
四:getchar&scanf两者区别
1.返回值不同
scanf:返回成功赋值项个数,并将数值赋值到指定参数上
getchar:只读取一个字符并返回其ASCLL码,并且可以赋值也可以不赋值
scanf("%d",&a); getchar(); ch = getchar(); //两者都正确
2.结束输入的方式不同【空格的接收】
scanf:遇到 回车(enter),空格,TAB ,报错就会结束一次输入,空格不会接收
getchar:函数只以回车Enter结束输入,接受空格符。
3.敲结束回车的缓存方式不同
scanf:在一次输入结束后,不会舍弃最后的回车符(即回车符会残留在缓冲区中)
getchar:回车作为结束的标志,所以在敲回车时'\n'也被存入缓存
4.输入的类型有所不同
scanf:可以输入多种类型
getchar:只能输入字符型
5.读取数字时结束方式不同
scanf:在读取数字时会跳过空格、回车(Enter)、制表符和换行符!【请按任意键继续】
getchar:把数字变成字符型,输入时遇到回车键才从缓冲区依次提取字符。
-------------------------------------------------------------输出------------------------------------------------------------
五:putchar
1. 定义
函数是字符输入函数,其功能是从键盘上输出一个字符【函数的变量及输出结果只能为一个字符】
2.声明头文件
#include <stdio.h>或#include "stdio.h"
3.返回值
该函数以无符号 char 强制转换为 int 的形式返回写入的字符。
(1)当输出正确的时候,返回输出字符转换为的unsigned int 值;
(2)当输出错误的时候,返回 EOF(End of file)文件结束符;
4.读取方式
该函数将指定的表达式的值所对应的字符输出到标准输出终端上。表达式可以是字符型或整型,它每次只能输出一个字符。把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
5.基本格式
1.当c为一个被单引号(英文状态下)引起来的字符时,输出该字符【注:该字符也可为转义字符】;
2.当c为一个介于0~127(包括0及127)之间的十进制整型数时,它会被视为对应字符的ASCII代码,输出该ASCII代码对应的字符;
3.当c为一个事先用char定义好的字符型变量时,输出该变量所指向的字符。
六:printf
1.定义
格式化输出函数, 用于向标准输出设备按规定格式输出信息, 并且可以输出各种数据类型,还可以有参数
2.声明头文件
stdio.h
3.一般格式
%[标志][输出最小宽度][.精度][长度]类型其中方括号[]中的项为可选项
4.一般形式
printf(“格式控制字符串”,输出表列)其中格式控制字符串用于指定输出格式
5.返回值
输出字符的个数
6.输出方式
可以输出相对于类型的数值并且存储到制定变量,并且可以读取多个数值,如数字,字符,字符串等
七:puts
1.定义
函数用来向标准输出设备(屏幕)输出字符串并换行,具体为:把字符串输出到标准输出设备,将'\0'转换为回车换行。其调用方式为,puts(s);其中s为字符串字符(字符串数组名或字符串指针)[只能输出字符串 功能是将字符串输出到屏幕]
2.声明头文件
stdio.h
3.结束方式
输出时只有遇到 '\0' 也就是字符串结束标志符才会停止
并且puts()在使用完之后会自动换行 等效于printf("%s\n",s)
4.返回值
puts()函数的返回值为0
八:putchar&printf两者区别:
1.返回值不同
putchar:会有返回值,并且返回值为()内参数值 转换为的unsigned int 值 如果遇到错误或者文件结束,putchar() 返回EOF
该函数以无符号 char 强制转换为 int 的形式返回写入的字符
char c1,c2; c1=getchar(); c2=putchar(c1); putchar(c2); return 0;
printf:函数返回值为字符串的长度。函数返回值为整型。若成功则返回输出的字符数,输出出错则返回负值
int a=5555; printf(%d",a); //printf将返回4 printf("55555\n"); //printf将返回6
2.输入值不同
putchar: 只能输出一个字符 printf:能输出各种形式 如%d %f %lf %s 都可以
3.输出方式不同
putchar:输出可以是一个字符,可以是介于0~127之间的一个十进制整型数(包含0和127),也可以是用char定义好的一个字符型变量。
printf:从右到左压栈,然后将先读取放到栈底,最后读取的放在栈顶,处理时候是从栈顶开始
4.功能不同
putchar:是把参数 char 指定的字符(一个无符号字符)写入到标准输出 stdout 中。
printf:是式样化输出函数, 用于向准则输出设备按规定式样输出消息。