输入输出
1.c语言并不提供输入输出功能
输入输出函数库
2.标准的输入输出库
#include <stdio.h> //standard input output
3.三组函数
单个字符输入输出
getchar
putchar
格式化的输入输出
printf
scanf
字符串的输入输出 (*)
gets //string --- 一串字符 "abc"
puts
单个字符输入输出
getchar()
putchar()
int getchar(void); //
功能:
获取一个字符
参数:
void --空类型 //表示没有参数
返回值:
unsigned char ---> int
成功 返回读到的字符的 ASCII码值
失败 EOF (-1)
1.printf
int putchar(int c);
功能:
输出一个字符
参数:
@c 要输出的 字符的 ascii码值
返回值:
成功 是输出的 字符的ASCII的值
失败 EOF
格式化的输入输出
printf //格式化输出函数
int printf(const char * format, ...);
... //可变参
//参数个数是变化的
格式:
printf("格式化控制字符串",输出列表);
格式控制字符串:
printf("b= %d\n",10);
普通字符:
原样输出
占位符:
占了一个位置,最终输出效果,将 输出列表中对应的参数,以占位符指定的格式输出
占位符 与 输出列表的匹配
从左到右逐个对应的
如果 占位符个数 大于 输出列表参数个数 , 多的 输出是随机值
占位符:
//整型
%d 以 有符号 十进制 格式 输出
%u 以 无符号 十进制 格式 输出
%x 以 十六进制 格式 输出
%X 以 十六进制 格式 输出 ,但是对应的a b c d e f 都是大写
%o 以 八进制 格式 输出
//浮点数
%f 以小数的形式输出,默认保留6位小数
%g 以 更简洁 的方式输出 ,同时不会输出多余的0
%e 以 科学计数法形式 输出
%E 输出结果中 e 大写
//字符
%c 以 字符的 格式 输出 //将对应的ASCII码值的 字符形式输出
%s 以 字符串 格式 输出
辅助控制符:
%[辅助控制符]d
#
%#x //表示 输出十六进制 的前缀
%#o //表示 输出八进制 的前缀
m
数字 --- 输出的宽度
实际的参数的宽度 > m 则以实际参数的宽度为准
< m 默认右对齐 ,前面的空位补空格
左对齐 加一个 负号(-)
.n 数字
浮点数
表示 控制 输出的小数位数
字符串:
表述输出 字符串 前n位
l // long 类型
ll //long long 类型
h //half --一半 2个字节
hh //1个字节
2.scanf
scanf
int scanf(const char *format, ...);
格式:
scanf("格式控制字符串",地址列表)
格式控制字符串:
普通字符:
原样输入 //不建议写
占位符:
占了一个位置,将输入的数据,转换位 占位符 指定的格式,放到 地址列表对应的一块内存空间上
占位符 也决定 能识别的 字符的范围
占位符:
//整型
%d 将输入的数据 转换为 有符号 十进制 格式
%u 将输入的数据 转换为 无符号 十进制 格式
%x 将输入的数据 转换为 十六进制 格式 输出
//%X 将输入的数据 转换为 十六进制 格式 输出 ,但是对应的a b c d e f 都是大写
%o 将输入的数据 转换为 八进制 格式 输出
//浮点数
%f 将输入的数据 转换为 小数的形式
%g
%e
%E
//字符
%c 以 字符的 格式 输出 //将对应的ASCII码值的 字符形式输出
%s 以 字符串 格式 输出