参考文章:

http://blog.sina.com.cn/s/blog_784f40b80100psg9.html

C语言输入输出函数分为两类:

1、格式化输入输出函数

2、非格式化输入输出

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1、格式化输入输出

格式化输入输出就是我们常说的printf()和scanf()函数,这两个函数可以向标准的输入输出设备读写不同格式的数据。

1.1 printf()函数

printf()函数是格式化输出函数, 一般用于向标准输出设备按规定格式输出信息。它的调用格式有两种:
1、printf("正常字符\转换字符");

2、printf(“格式化字符串\转换字符”, 参量表);

其中格式化字符串包含两部分,一是正常字符,这些字符按照原样输出,例如:printf("hello world\n");

二是格式化规定字符,这部分以"%"开始,后面跟一个或者多个规定字符,用来确定输出内容的格式。

在这样的格式化字符串的后面有一个参量表。参量表是需要输出的一系列参数。其个数必须与格式化字符串所说明的输出参数个数一样多,各个参数之间用","隔开,且顺序是一一对应的。

例如:printf("%d",i);

格式化字符串通常的格式如下:

%[修饰符]转换说明符

我们常用的修饰符有标志修饰符、精度修饰符、长度修饰符和宽度修饰符。通过这些修饰符我们可以编写更加整齐美观的数据输出形式。

转换说明符
━━━━━━━━━━━━━━━━━━━━━━━━━━
符号 作用
——————————————————————————
%d 十进制有符号整数
%u 十进制无符号整数
%f 浮点数
%s 字符串
%c 单个字符
%p 指针的值
%e 指数形式的浮点数
%x, %X 无符号以十六进制表示的整数
%0 无符号以八进制表示的整数
%g 自动选择合适的表示法
━━━━━━━━━━━━━━━━━━━━━━━━━━

长度修饰符

━━━━━━━━━━━━━━━━━━━━━━━━━━
符号 作用
——————————————————————————
l  长整型量输出
h 短整型量输出
━━━━━━━━━━━━━━━━━━━━━━━━━━

长度修饰符可以和d,u和f等转换说明符一起使用。例如%ld 表示长整型数据的输出。

宽度和精度修饰符

━━━━━━━━━━━━━━━━━━━━━━━━━━
符号   作用
——————————————————————————
md    以宽度m输出整型数,不足m位数时左侧补以空格

0md  以宽度m输出整型数,不足m位数时左侧补以0

m.nf   以宽度m输出实数,n为小数位数

ms   以宽度m输出字符串,不足m位时左侧补以空格

m.ns  以宽度m输出字符串左侧n个字符,不足m位时左侧补以空格
━━━━━━━━━━━━━━━━━━━━━━━━━━

标志修饰符

在printf函数常常用标志修饰符控制输出格式,常见的标志修饰符如下

━━━━━━━━━━━━━━━━━━━━━━━━━━
符号  作用
——————————————————————————
-   “左对齐方式”:输出数据左对齐,右侧补空格。

缺省时,输出数据是右对齐,左侧补空格

+  输出数据是正数时候,在数据之前显式一个+号,

输出数据是负数时候,在数据之前显式一个-号。

#  输出数据是八进制数据时,在前面加0,

是十六进制数据时,在前面加0x

空格 输出数据是正数时候,在数据前面打印空格,

是负值时,在数据前面打印-号
━━━━━━━━━━━━━━━━━━━━━━━━━━

转换字符

在格式化规定符之后通常会有一些"\"开头的转换字符,常见的转换字符如下:

━━━━━━━━━━━━━━━━━━━━━━━━━━
字符 作用
——————————————————————————
\n 换行
\f 清屏并换页
\r 回车
\t Tab符
\xhh 表示一个ASCII码用16进表示,
其中hh是1到2个16进制数
━━━━━━━━━━━━━━━━━━━━━━━━━━

1.2 scanf()函数

scanf()函数是格式化输入函数, 它从标准输入设备(键盘) 读取输入的信息。

其调用格式为:

scanf(“格式化字符串”, 地址表);

格式化字符串包括以下三类不同的字符;

1. 格式化说明符: 格式化说明符与printf()函数中的格式说明符基本相同。

2. 空白字符: 空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符

3. 非空白字符: 一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。

地址表是需要读入的所有变量的地址, 而不是变量本身。这与printf()函数完全不同, 要特别注意。各个变量的地址之间同“,”分开。

常见的输入列表如下:

scanf(“%d, %d”, &i, &j);

2、非格式化输入输出函数

非格式化输入输出函数可以由上面讲述的标准格式化输入输出函数代替, 但这些函数编译后代码少, 相对占用内存也小, 从而提高了速度, 同时使用也比较方便。

2.1 putchar()函数

putchar()是对单个字符进行输出的函数。它的功能是将字符输出到标准输出设备,每次只能输出一个字符。

常用格式为:putchar(输出项)  例子如下:

char k = "K";

putchar(k);

putchar('K');

2.2 getchar()函数

getchar()是对单个字符进行输入的函数。它的功能是从标准输入设备输入一个且只能是一个字符,并将该字符返回为getchar()的值。

其一般格式为:getchar() 例子如下:

char ch;

ch = getchar();

2.3 puts函数

puts()函数的功能是将字符串输出到屏幕上,输出后将自动回车换行。调用格式为:

puts(s);//其中s为字符串数组名或者字符串指针

2.4 gets()函数

gets()函数用来从标准输入设备(键盘)读取字符串直到回车结束, 但回车符不属于这个字符串,其调用格式为:

get(s) ;//其中s为字符串数组名或者字符串指针

c语言的输入输出函数的更多相关文章

  1. C语言学习<输入输出函数,函数的调用>

    #include <stdio.h> /* 输入输出函数的学习 函数的调用 2017.05.25 soulsjie */ //输入连个数字求最大值 void main(){ int Max ...

  2. C语言中输入输出函数

    1.1.1 格式化输入输出函数Turbo C2.0 标准库提供了两个控制台格式化输入. 输出函数printf() 和scanf(), 这两个函数可以在标准输入输出设备上以各种不同的格式读写数据.pri ...

  3. C语言 · 字符串输入输出函数

    算法提高 3-2字符串输入输出函数   时间限制:1.0s   内存限制:512.0MB      描述 编写函数GetReal和GetString,在main函数中分别调用这两个函数.在读入一个实数 ...

  4. C语言格式化输入输出函数

    一:格式输出函数printf() 1.调用形式一般为:printf("格式化控制字符串",输出表列): 2.格式化控制字符串用于指定输出格式,它有三种形式: 1.格式说明符:规定了 ...

  5. C语言字符串输入输出函数(gets()函数、puts()函数、fgets()函数、fputs()函数)

    scanf("%s", str) 不能读取空白字符,遇到第一个空白字符就停止读取. gets(str) 读取整行输入,直至遇到换行符,丢弃换行符储存其余字符,并在末尾添加 \0.与 ...

  6. c语言输入输出函数

    上学年学习c语言的时候比较匆忙,没好好吸收. 现在有时间好好复习下. 本文就c语言常见输入函数进行简单介绍,对比. ps:由于自己能力有限,时间有限,多数介绍,总结都是摘录网上相关学习资料,下面给出本 ...

  7. C语言中最常用的三种输入输出函数scanf()、printf()、getchar()和putchar()

    本文给大家介绍C语言中最常用的三种输入输出函数scanf().printf().getchar()和putchar(). 一.scanf()函数格式化输入函数scanf()的功能是从键盘上输入数据,该 ...

  8. C语言数据输入与输出

    1 概论 C语言提供了跨平台的数据输入输出函数scanf()和printf()函数,它们可以按照指定的格式来解析常见的数据类型,例如整数,浮点数,字符和字符串等等.数据输入的来源可以是文件,控制台以及 ...

  9. C++中的字符串的输入输出函数、空字符与空格的区别、字符变量赋值和字符串初始化

      一.字符串输入输出函数 1.  cin.get()   逐个字符输入输出 2.  cin 可以将整个字符串一次性输入,但是,cin将空格.Tab和回车键,因此不能用于数组的一次性输入. 注意:ci ...

随机推荐

  1. Spring进阶—如何用Java代码实现邮件发送(二)

    http://www.cnblogs.com/itsource/p/4266905.html

  2. Ue4如何在C++中获得获得当前角色的指针?

    #include "ThirdPersonPluginCharacter.h" #include "Kismet/GameplayStatics.h" //包含 ...

  3. 经典的nav导航

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. android6.0 适配的问题——activity销毁的问题

    1.最近我去运行我们公司所开发的APP,发现出现很多问题,就是从前一个页面跳到另外一个页面后,前一个页面会被销毁. 正常来说,activity跳转过程是这样: A: 存在intent +setActi ...

  5. POJ3469 & 最小割(最大流)模板

    就是一个求最小割. sol: 数据比较大,n有20000,内部相连的边有20w,这么算算就要存八九十万的边,空间显然降不下来...然而打了dinic并不觉得快很多...最快跑到3800+ms 然后跪一 ...

  6. 手机web站点和手机app 技术选型的困惑于思考

    今年一直在关注移动端技术的发展,自己也用博客园的rss接口玩了半年,关于技术选型的困惑和大家说说 一 趋势 随着手机硬件不断的升级,外加4g牌照的发放,不出2年时间移动端web站点和手机app一定会进 ...

  7. 期望dp BZOJ3450+BZOJ4318

    BZOJ3450 概率期望DP f[i]表示到i的期望得分,g[i]表示到i的期望长度. 分三种情况转移: ① s[i]=‘x’:f[i]=f[i-1],g[i]=0 ② s[i]=‘o’:f[i]= ...

  8. Linux分区练习(1)

    1.作业描述: 4个主分区. 具体实现过程: 打开Linux,在终端中输入:fdisk -uc /dev/sda 可以查看到                   :Command (m for hel ...

  9. 深入浅出 - Android系统移植与平台开发(十) - led HAL简单设计案例分析

    作者:唐老师,华清远见嵌入式学院讲师. 通过前两节HAL框架分析和JNI概述,我们对Android提供的Stub HAL有了比较详细的了解了,下面我们来看下led的实例,写驱动点亮led灯,就如同写程 ...

  10. linux共享内存实验

    顾名思义,消息队列就是一些消息的列表,用户可以在消息队列中添加消息和读取消息等.从这点上看,消息队列具有一定的FIFO特性,但是它可以实现消息的随机查询,比FIFO具有更大的优势.同时,这些消息又是存 ...