博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言的输入输出操作函数小结
阅读量:5331 次
发布时间:2019-06-15

本文共 2050 字,大约阅读时间需要 6 分钟。

一.scanf()&printf()函数

  scanf() 函数用于从标准输入(键盘)读取并格式化, printf() 函数发送格式化输出到标准输出(屏幕)。  scanf()函数原型为int scanf( char const* const _Format, ...),printf()函数原型为int printf(char const* const _Format, ...)。 scanf()和printf()是格式化输入通过%d,%s,%c等限定输入/输出的类型及格式,因此书写需要格外注意格式和类型,scanf()后面的变量需要取变量的地址。出于安全考虑,一般用scanf_s()代替旧版scanf()函数。

如下实例

 

#include 
int main(){ int c, d; printf("请输入数值:"); scanf_s("%d %d", &c,&d); printf("输出结果为:"); printf("%d %d\n", c,d);return 0;}

 

输出如下

值得注意的是,当输入如下代码时

#include 
int main(){ int c; printf("请输入数值:"); scanf_s("%d ", &c); // 注意%d后面有个空格 printf("输出结果为:"); printf("%d\n", c); return 0;}

我们运行代码,得到下面输出界面

  我们原先输入10,按回车它并不会马上输出我们的结果,我们需要在输入一个非空格和非换行符,再按回车键才会输出我们的结果。因为scanf()函数里面的%d后面有个空格,所以他需要遇到非空格和换行符才会结束输入。

 

二.getchar()&putchar()函数

  getchar()和putchar()函数是单个字符输入/输出函数,getchar有一个int型的返回值。当程序调用getchar时.程序就等着用户按键。用户输入的字符被存放在键盘缓冲区中。直到用户按回车为止(回车字符也放在缓冲区中)。当用户键入回车之后,getchar才开始从stdio流中每次读入一个字符。getchar函数的返回值是用户输入的字符的ASCⅡ码,如出错返回-1,且将用户输入的字符回显到屏幕。如用户在按回车之前输入了不止一个字符,其他字符会保留在键盘缓存区中,等待后续getchar调用读取。也就是说,后续的getchar调用不会等待用户按键,而直接读取缓冲区中的字符,直到缓冲区中的字符读完为后,才等待用户按键。

代码实例

#include 
int main(){ int c; printf("请输入一个字符:"); c = getchar(); printf("\n你的输入: "); putchar(c); printf("\n"); return 0;}

输出结果

  当要输入多个字符并输出显示时,需要用到循环语句,可以利用getch()从键盘输入一串字符到缓冲区,字符输入以回车结束,回车字符同时存储在缓冲区,然后用putchar()读取缓冲区字符,设置条件遇到回车字符时结束即可。

代码实例

#include 
int main(){ int c; printf("请输入字符:"); while ((c=getchar()) != '\n') // 向缓冲区输入字符,按回车时结束输入 { putchar(c); // 读取缓冲区的字符 } printf("\n"); return 0;}

输出结果

  

  还有一个函数get()getchar()基本功能相同,差别是getch()直接从键盘获取键值,不等待用户按回车,只要用户按一个键,getch()就立刻返回,通常应用在游戏中。

三.gets()&puts()函数

  gets()和puts()是文本行输入/输出函数。gets()从标准输入设备读字符串函数,其可以无限读取,不会判断上限,以回车结束读取。出于安全考虑,一般用gets_s()代替gets()函数。

代码实例

#include 
int main(){ char str[100]; printf("请输入文本:"); gets_s(str); printf("你的输入为: "); puts(str); return 0;}

输出结果

 

转载于:https://www.cnblogs.com/maluning/p/7955760.html

你可能感兴趣的文章
MySQL-EXPLAIN执行计划Extra解释
查看>>
Zookeeper概述
查看>>
Zookeeper一致性级别
查看>>
单例模式的几种实现方式及对比
查看>>
HDU 1712 ACboy needs your help (分组背包模版题)
查看>>
共享内存
查看>>
从零开始学JavaWeb
查看>>
Tomcat源码浅析
查看>>
计算三球交点坐标的快速算法
查看>>
my_ls-ailh
查看>>
Extjs介绍(二)
查看>>
微信小程序开发7-JavaScript脚本
查看>>
leetcode-78-子集
查看>>
LINUX进程小结
查看>>
公告会看门道:四个不同的厨师和史蒂夫·乔布斯
查看>>
HDU 1983 BFS&&DFS
查看>>
c++开源项目汇总
查看>>
python yield返回多个值
查看>>
每日站立会议及今日份任务
查看>>
R12 付款过程请求-功能和技术信息 (文档 ID 1537521.1)
查看>>