C语言——输入【getchar-scanf-gets】输出【putchar-printf-puts】用法区别

目录:

一:getchar

1.定义

2.声明头文件

3.返回值

4.读取方式

5.需要用getchar()吃掉回车的几种情况

6.注意

二:scanf

1.定义 

2.声明头文件

3.一般格式

4.一般形式

5.返回值

6.读取方式

7.注意

三:gets  

1.定义 

2.声明头文件

3.结束方式

4.结束敲回车时的状态

5.读取方式

四:getchar&scanf两者区别

1.返回值不同

2.结束输入的方式不同【空格的接收】

3.敲结束回车的缓存方式不同

4.输入的类型有所不同

5.读取数字时结束方式不同

五:putchar

1. 定义 

2.声明头文件

3.返回值

4.读取方式

5.基本格式

六:printf

1.定义  

2.声明头文件

3.一般格式

4.一般形式

5.返回值

6.输出方式

七:puts

1.定义  

2.声明头文件

 3.结束方式

4.返回值

八:putchar&printf两者区别:

1.返回值不同

2.输入值不同

3.输出方式不同

4.功能不同


 -------------------------------------------------------------输入------------------------------------------------------------

一: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:是式样化输出函数, 用于向准则输出设备按规定式样输出消息。

  • 6
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘鑫磊up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值