IO基础概念
输入:从键盘等输入设备读取数据存入内存
输出:将内存中的数据打印到屏幕等输出设备

C语言标准库提供三种输入输出函数
一、getchar()/putchar()
1.putchar
函数原型:int putchar(int c);
功能:向终端输出一个字符
参数:c :要输出的字符的ASCII值
返回值:返回输出的字符的ASCII
char ch='a';
putchar(ch); //输出a
putchar(97); //97是'a'的ASCII码值,依然输出a
putchar('#'); //输出符号#
putchar('\\n');//输出换行
2.getchar
函数原型:int getchar(void);
功能:从终端读取一个字符
无参数
返回值:返回终端读到的字符的ASCII值
注意:两个函数只能读取单个字符,无法一次性输出字符串
二、printf/scanf
(一)printf:向终端输出格式化后的字符串
1. 输出非格式控制符
\\"打印双引号,%%打印百分号
2. 输出带有格式控制符的字符串
| %d | 十进制有符号整型 | int |
| %u | 十进制无符号整型 | unsigned int |
| %ld | 长整型 | long |
| %lu | 无符号长整形 | unsigned long |
|
%o %#o |
八进制 带前缀0的八进制 |
int |
|
%x %#x |
十六进制小写 带0x前缀 |
int |
|
%X %#X |
十六进制大写 带0x前缀 |
int |
| %c | 单个字符 | char |
| %f | 单精度浮点数 | float |
| %lf | 双精度浮点数 | double |
|
%e %E |
科学计数法输出小数 | flaot/double |
| %s | 输出字符串 | char[ ] |
3、宽域,对齐,小数精度控制
%nd:占n个字符宽度,右对齐,空位补空格
%-nd:占n个字符宽度,左对齐
%0nd:占n位,空位补0
%m.nf:总宽度m位,保留n位小数
(二)scanf()格式化输入
功能:从终端读取一个字符串并将其转换成目标格式
规则:
1.接受变量必须加&取地址(字符串数组除外,数组名本身就是地址)
2.输入时,多个数字/小鼠之间用空格、回车、Tab分离
3.格式串内只写控制符,不加多余文字
#include<stdio.h>
int main()
{
int num;
long l;
float f;
char str[32];
scanf("%d %ld %f",&num,&l,&f);
scanf("%s",str); //读取字符串不能带&
return 0;
}
三、puts()/gets()
1.puts
功能:将字符串输出到终端,自动增加'\\n';(自带换行)
char str[32] = {"how are you!"};
puts("hello world");
puts(str);
2.gets
功能:从终端读取字符串,并存入字符型数组中
注意:gets是一个危险的函数,可能会造成数组越界
char str[128] = {0};
gets(str);




