今日学习语句与输入输出
一、语句
含义:完成某一条功能的代码。C语言中一般一条语句的结束最后以 ; 作为结尾。
1.控制语句
eg: if ()
{
}else
{
}
2.表达式语句
eg:a = 1 + 2 ;
3.函数调用语句
eg: printf("hello \n") ;
4.空语句
eg: ;
5.复合语句
{
a = 1 + 2;
b = 3;
}
二、输入输出
1. 输入--->计算机--->输出
2. C语言本身并不提供输入输出这样的功能,以函数的方式提供的---->函数库
3. 函数库
stdio (standard input ouput)
#include <stdio.h> //告诉编译器说 ,我要用 stdio函数库中的函数
4.函数库中提供的常用的输入输出函数:
1)单个字符的输入输出 getchar / putchar
①getchar
int getchar(void);
功能:获得 从键盘输入的 一个字符
参数:void --- 表示 不需要给实际参数
返回值:成功时 ,返回输入的 字符的ASCII码值
②putchar
int putchar(int c)
功能:将一个字符数据输出
参数:c用来接收要输出的字符的 ascii码值
返回值:成功时,会将输出了的字符的ASCII码值返回
2)多个字符(字符串 - string)的输入输出 gets / puts
3)格式化(format)的输入输出 scanf / printf
①printf
函数原型----->int printf(const char *format, ...);
printf("格式控制字符串",输出列表)
功能:
格式化输出转换的函数
参数:
"格式控制字符串" ----> 控制最终输出结果的格式
输出列表 -----> 要输出的数据
"格式控制字符串"
- 普通字符----->原样输出
- 占位符----->%d %c %f //以%开头发字符
占位符的个数一般和后面的输出列表中的参数 一一对应,将来要用对应的参数替换
整型
%d --- 将数据转换为 有符号十进制形式
%u --- 将数据转换为 无符号十进制形式
%x --- 将数据转换为 无符号十六进制形式
%X --- 与小写区别,输出的十六进制数中的字母都是大写
%o --- 将数据转换为无符号八进制形式
浮点
%f --- 将数据转换为十进制形式小数默认保留 6 位小数
%e --- 将 数据 转换为 科学计数法形式小数默认也保留 6位 小数,同时指数部分会显示正负
%E --- 输出结果中的e也是大写的
%g --- 将数据转换为十进制形式小数,但是输出结果 保持简洁 ,会把不相关0去掉
字符型
%c --- 将数据转换为对应字符形式
%s --- 将 数据转换为字符串形式
②scanf
函数原型 int scanf(const char *format, ...);
scanf("格式控制字符串",地址列表)
功能:将键盘输入的数据转换为对应的格式,存放内存中
"格式控制字符串"
- 普通字符----->原样输出
- 占位符----->%d %c %f //以%开头发字符
占位符的个数一般和后面的输出列表中的参数 一一对应,将来要用对应的参数替换
整型
%d --- 将数据转换为 有符号十进制形式
%u --- 将数据转换为 无符号十进制形式
%x --- 将数据转换为 无符号十六进制形式
%X --- 与小写区别,输出的十六进制数中的字母都是大写
%o --- 将数据转换为无符号八进制形式
浮点
%f --- 将数据转换为十进制形式小数默认保留 6 位小数
%e --- 将 数据 转换为 科学计数法形式小数默认也保留 6位 小数,同时指数部分会显示正负
%E --- 输出结果中的e也是大写的
%g --- 将数据转换为十进制形式小数,但是输出结果 保持简洁 ,会把不相关0去掉
字符型
%c --- 将数据转换为对应字符形式
%s --- 将 数据转换为字符串形式
5.辅助控制符(printf)
%[辅助控制符]d
1)#
%#x --- 将十六进制的前缀打印出来 eg:0x7b
%#o --- 将八进制的前缀打印出来 eg: 012
2)m //数字 ----->控制输出结果的宽度
如果m > 实际数据的宽度 输出m列的宽度 默认数据右对齐,前面补空格
如果m <= 实际数据的宽度 输出实际的数据即可 (以实际数据为准)
3) -m - 左对齐
-123 //负数
4) .n n也是个数字
浮点型 ------最终小数部分保留n位
eg: %.2f
字符串 -----保留前n个字符
eg: %.2s
5)l
%d // int类型的
%ld // 长整型 long int
%lld //long long int
%Ld //long long int
6)f
%f //float double
%Lf //long double
7)h
%hd //表示 %d 即int 的一半----->short
%hhd //表示char
三、注
1.输入多个数据时,数据间可以用 "空白符(Tab,回车键,空格)" 分割
2.地址列表处,如果是变量,那么注意 &a
Segmentation(段) fault(错误) (core dumped) // 段错误
段错误 --- 代码访问到 原本不能访问的空间
3.占位符和地址列表做到一一对应
个数和类型要匹配
4. %c 将键盘的输入,转换为字符存到计算机 (本质还是存的ascii码值) 空白符 -- 也会被识别
5. scanf("空白符") 空白符------->表示匹配任意多个空白符
四、收获
今天学习了语句和输入输出以及辅助控制符。



被折叠的 条评论
为什么被折叠?



