常用的数据输入和输出函数
注:本文为学习《C语言从入门到精通》时,对部分章节的总结
1、语句
C语言的语句用来 向计算机系统发出操作指令。一条语句经过编译后,会产生若干条机器指令
声明部分不能算作语句。例如,“int a”,就不是一条语句,因为不产生机器的操作,只是对变量提前进行了定义。
2、字符数据输入和输出
2.1、字符数据输出
输出字符数据使用的是putchar函数,作用是向显示设备输出一个字符。
int putchar(int ch);
头文件为stdio.h。参数ch为要进行输出的字符,可以是字符型变量或整型变量,也可以是常量。
如:输出字符A:putchar(‘A’);
输出转义字符A:putchar(‘\101’);
2.2、字符数据输入
字符数据输入使用getchar函数,作用是从终端(输入设备)输入一个字符。
int getchar();
头文件为stdio.h。
int a = getchar();
3、字符串输入和输出
3.1、字符串输出函数
字符串输出使用puts函数,作用是输出一个字符串到屏幕上。
int puts(char *str);
头文件为stdio.h。
puts(“I LOVE CHINA!”); // 输出I LOVE CHINA!,然后自动换行
输出字符串,然后自动换行。与printf函数不同,puts函数会在字符串中判断“\0”结束符,遇到后,后面的字符不再输出,并且自动换行。
如:puts(“I LOVE\0 CHINA!”); // I LOVE,然后自动换行
3.2、字符串输入函数
字符串输入使用的是gets函数,作用是将读取的字符串保存在形式参数str变量中,读取过程直到出现新的一行为止。其中新一行的换行字符将会转换为空终止符“\0”。
char *gets(char *str);
头文件stdio.h。
4、格式输出函数
表4.1 printf函数的格式字符
格式字符 | 功能说明 |
d,i | 以带符号的十进制形式输出整数(整数不输出符号) |
o | 以八进制无符号形式输出整数 |
x,X | 以十六进制无符号形式输出整数。用x输出十六进制数的a~f时,以小写形式输出;用X时,则以大写字符输出 |
u | 以无符号十进制形式输出整数 |
c | 以字符形式输出,只输出一个字符 |
s | 输出字符串 |
f | 一小数形式输出 |
e,E | 以指数型数输出实数,用e时指数以e表示,用E时指数以E表示 |
g,G | 选用“%f”或“%e”格式中输出宽度较短的一种格式,不输出无意义的0.若以指数形式输出,则指数以大写表示 |
字母l | 用于长整型整数,可加在格式字符d、o、x、u前面 |
m(代表一个整数) | 数据最小宽度 |
n(代表一个整数) | 对实数,表示输出n位小数;对字符串,表示截取的字符个数 |
- | 输出的数字或字符在域内向左靠拢 |
printf函数的作用是向终端(输出设备)输出若干任意类型的数据。
printf(格式控制,输出列表);
printf(“%-m.ns”,…);
八进制用“%#o”可以打印出前导0;
十六进制用“%#x”或“#X%”可以打印出前导0x或0ZX
int a = 12;
printf("[%o %#o]\n", a, a); //打印 [14 014]
printf("[%x %X %#x %#X]\n", a, a, a, a); //打印 [c C 0xc 0XC]
4.1、格式控制
格式控制是用双引号括起来的字符串,也称为控制字符串。其中包括格式字符和普通字符。
- 格式字符用来进行格式说明,作用是将输出的数据转换为制定的格式,通常以“%”字符开头
- 普通字符是需要原样输出的字符,包括双引号中的逗号、空格和换行符
4.2、输出列表
输出列表中列出的是要进行输出的一些数据,可以使变量或表达式。
5、格式输入函数
格式输入函数scanf。功能是指定固定的格式,并且按指定的格式接受输入的数据,最后将数据存储在指定的变量中。
scanf(格式控制,地址列表);
表5.1 scanf函数的格式字符
格式字符 | 功能说明 |
d,i | 用来输入有符号的十进制整数 |
u | 用来输入无符号的十进制整数 |
o | 用来输入无符号的八进制整数 |
x,X | 用来输入无符号的十六进制整数(大小写作用相同) |
c | 用来输入单个字符 |
s | 用来输入字符串 |
f | 用来输入实行,可以用小数形式或指数形式输入 |
e,E,g,G | 与f作用相同,e与f、g之间可以相互替换(大小写相同) |
l | 用于输入长整型数据(可用于“%ld”“%lo”“%lx”“%lu”)以及double型数据(“%lf”或“%le”) |
h | 用于输入短整型数据(可用于“%hd”“%ho”“%hx”) |
n | 指定输入数据所占的宽度 |
* | 表示指定的输入项在读入后不赋给相应的变量 |
格式字符“%s”用来输入字符串。将字符串送到一个字符数组中,在输入时以非空白字符开始,以第一个空白字符结束。字符串以串结束标志“\0”作为最后一个字符。
scanf函数使用空白字符分割输入的数据,空白字符包括空格、换行、制表符(tab)。
5.1、格式控制
与printf函数相同。
5.2、地址列表
一定要使用变量的地址,而不是变量的标识符。