一、了解输入输出
输入 ---> 计算机 --->输出
[ 内存 ] //缓冲区域
c的输入输出语句并不是c语言本身的一部分,使用输入输出功能需要调用c的函数库 (#include <stdio.h> //std io (standard input output)提供了一系列的输入输出操作的函数,用输入输出的功能
就是学习这些函数。
头文件:#include <stdio.h> //std io (standard input output)
//单个字符的输入输出
putchar //输出
getchar //输入
//格式化的输入输出
printf
scanf
//字符串输入输出
puts
gets
二、getchar()和putchar()
1、getchar() //
int getchar(void); //函数原型
功能: 字符输入函数
参数:void --空 不需要实参
返回值:返回 读到的字符
2、putchar();
int putchar(int c); //函数原型
功能:输出一个字符
参数:表示要输出的字符(对应的ASCII码值)
返回值:输出了的 字符 对应的ascii码值
三\printf()和scanf() //格式化输入输出
1、printf();
功能: 格式化的输出
函数原型:
printf("格式控制字符串",输出列表)
eg:printf("a = %d\n",a);
格式控制字符串:
(1)普通字符 //原样输出
(2)占位符% //占位符 会被 后面的"输出列表"中的值替换
//占位符 与 输出列表 的对应关系
//一个占位符匹配 输出列表中的一个值 ,依次匹配
//占位符如果没有匹配的参数 ,此时对应随机值
整型数据:
%d --- 转换为 有符号十进制形式
%o --- 转换为 八进制形式
%x/%#x --- 转换为 十六进制形式
x可以是大写,大写 表示 输出的十六进制中的字母 统统都是大写
eg:%x----7a %#x---ox7a %X---7A
%u --- 转换为 无符号十进制形式
浮点型:
%f --- 以十进制形式的小数输出,默认保留6位小数
%e --- 以科学计数法形式的输出小数
%g --- 以一种更简洁的方式输出,输出中不会打印无用0
字符型:
%c --- 转换为 字符形式 输出
%s --- 转换为 字符串形式 输出 //数组的时候 再说
%[辅助控制符]----
辅助控制符:
-m.n
m //涉及宽度问题时,右对齐
-m //涉及宽度问题时,左对齐
// 如果 实际数值宽度 < m ,此时 输出效果
//如果 实际数值宽度 >= m ,此时 输出实际的数值宽度 (相当于无效)
//如果右对齐时,此时 m前面可以写0,表示空出来的位置用0填充 (%0m)
%#o ---八进制输出时,前面加上0
%#x ---十六进制输出时,前面加上0x 如果x是大写,则0x也是大写 0X
.n //浮点数 --表示保留n位小数
//字符串 --表示保留前n个字符
l long
ll long long int
h 相当于short 两个字节 h表示half 一半
hh 相当于char 一个字节
%Lf //表示打印 long double
2、scanf();
功能: 格式化输入
scanf("格式控制字符串",地址列表)
格式控制字符串: //类似printf
普通字符 //原样输入 --scanf中一般不写不同字符(因为写了无用字符键盘也需要同步打出来) 只写占位符
占位符 //将输入的数字等转换为指定的格式
输入时 占位符 与 数据类型要做到严格匹配
整型数据:
%d --- 转换为 有符号十进制形式
%o --- 转换为 八进制形式
%x --- 转换为 十六进制形式
x可以是大写,大写 表示 输出的十六进制中的字母 统统都是大写
%u --- 转换为 无符号十进制形式
浮点型:
%f --- 以十进制形式的小数输出,默认保留6位小数
%e --- 以科学计数法形式的输出小数
%g --- 以一种更简洁的方式输出,输出中不会打印无用0
字符型:
%c --- 转换为 字符形式 输出
%s --- 转换为 字符串形式 输出 //数组的时候 再说
地址列表:
&a //& 取地址运算符
注意:
1. 空白符 (空格,回车,tab键)
2. scanf("%d\n"); //注意最后\n 是空白符 --作用表示匹配任意多个空白符
3. scanf匹配数据结束的情况
a.遇到非法字符 匹配结束
b.超出了指定宽度
输入缓冲区
scanf("%d,%d,%d",&a,&b,&c);
123,456,789\n ---> |123,456,789\n| 输入缓冲区
123a456
int a;
+--------+ 0x1000 地址编号
| | a
+--------+
| |
+--------+
| |
+--------+
| |
+--------+
| |
+--------+
给变量a中输入一个值
int a;
scanf("a=%d",&a);