C语言基础学习——输入输出

📅 2026/7/19 6:51:11
C语言基础学习——输入输出
语句完成一定任务操作的代码1.控制语句2.函数调用语句3.表达式语句4.空语句5.复合语句输入 ---[内存]---输出C语言本身不提供输入输出语句输入输出操作是由C函数库的函数来实现的C语言函数提供——函数库中的标准输入输出函数以标准的输入输出设备为输入输出对象的函数putchar //输出字符 getchar //输入字符 printf //格式输出 scanf //格式输入 puts //输出字符串 gets //输入字符串Linux中使用man 手册查询函数等详细信息man手册:NAME: 函数名及功能简短说明SYNOPSIS: 函数需要的头文件 以及 函数原型DESCRIPTION: 描述 函数的使用细节RETURN VALUE: 返回值一、单字符输入输出函数getchar输入字符、putchar输出字符int getchar(void); //函数原型 ---长什么样子功能从标准输入获得一个字符 //标准输入为键盘参数void 空类型 //表述不需要参数返回值返回读到的字符ASCII编码值int putchar(int c);功能将字符c输出到屏幕终端上参数c //要输出的字符返回值返回输出的字符ASCII编码值二、格式化函数printf格式化输出scanf格式化输入1printf#include stdio.h int printf(const char *format, ...);功能格式化输出参数format //格式化字符串——有指定格式的一个字符串... //可变参数——指参数的数量可变返回值成功时返回打印了的字符数量a可变参数eg:其中a ab可以为多个参数也可以没有参数printf(a %d\n,a); printf(a %d b %d\n,a,b); printf(hello world!\n);b格式化字符串a %d\n普通字符原样输出 //例子中的a 空格也是占位符 //需要把对应的数据转换为指定的占位符格式1.整型数据%d //表示将数据转换为有符号十进制形式%u //表示将数据转换为无符号十进制形式%o //表示将数据转换为 八进制形式%x //表示将数据转换为 十六进制形式%X //表示将数据转换为 十六进制形式 ,结果中的字母都转换为大写形式2.浮点型数据%f //表示将数据转换为十进制形式的小数结果默认保留6位小数%e //表示将数据转换为科学计数法形式的小数结果默认保留6位小数%g //以一种更简洁的方式输出 结果不会有无意义的03.字符型数据%c //表示将数据转化为对应的字符形式%s //字符串 --- 将数据转换为一串(多个字符)辅助控制符注意%d //占位符的% 和 d等符号之间 可以添加[辅助控制符]1.#%#x、%#o#表示数据对应的前缀字符十六进制前0x八进制前02.m%md //m为整数表示指定数据的宽度m实际数据的宽度默认右对齐左边补空格1、m前加 -减号可以左对齐2、m前加0可以补0m实际数据宽度以实际宽度输出3..n%.2f、%.2g //n为整数主要在浮点数和字符串处理.n用在浮点数输出时表示保留n位小数%f和%e.n用在%g表示保留结果前n位.n用在字符串用在%s表示保留前n位3.%ldl //在整型占位符中表示转换long类型ll //在整型占位符中表示转换long long类型L //在整型占位符中表示转换long long类型//在浮点型占位符中表示转换long double类型4.%%//最终会输出一个%用途1.做日常输出2.printf --- 输出菜单3.进行输出结果的格式控制注意占位符和输出参数要一一对应2scanf#include stdio.h int scanf(const char *format, ...);功能格式化输入函数参数format //格式化字符串——有指定格式的一个字符串... //可变参数——指参数的数量可变为地址列表返回值表示成功匹配到的数据项a格式化字符串普通字符原样输出 //例子中的a 空格也是占位符 //需要把对应的数据转换为指定的占位符格式1.整型数据 ///scanf中效果基本差不多%d //表示将数据转换为有符号十进制形式%u //表示将数据转换为无符号十进制形式%o //表示将数据转换为 八进制形式%x //表示将数据转换为 十六进制形式%X //表示将数据转换为 十六进制形式 ,结果中的字母都转换为大写形式2.浮点型数据 //scanf中效果差不多%f //表示将数据转换为十进制形式的小数结果默认保留6位小数%e //表示将数据转换为科学计数法形式的小数结果默认保留6位小数%g //以一种更简洁的方式输出 结果不会有无意义的03.字符型数据%c //表示将数据转化为对应的字符形式%s //字符串 --- 将数据转换为一串(多个字符)辅助控制符%lf //l --- 对应处理double类型的数据%Lf //L ---对应long long%ld //l --- long%lld //ll --- long longm //指定宽度输入时也可以指定宽度 --- 当数据达到指定宽度匹配结束注意1.scanf的格式控制字符串可以输入普通字符但是一般不建议用scanfa%d,a //输入时需要输入a2.scanf多个数据时默认以空白符作为分隔符 //空白符空格、tab、回车3.注意地址列表的地方需要的是地址普通变量需要如果不使用会出现Segmentation fault (core dumped)(段错误) //内存段---如果试图操作不能访问内存空间计算机中 0号地址一般不能直接访问操作系统自身需要长期占用一定的内存空间(一般都放在低地址处0~1G)4.scanf的占符位和地址参数要一一对应5.scanf匹配结束条件a遇到空白符b遇到非法字符c达到指定宽度6.注意scanf输入时占符位和类型要严格匹配7.scanf处理字符数据时要注意%c //空白符也是字符数据连续输入有%c处理1. scanf(%d %c%f,a,b,c); //空白符可以跳过输入的空白符 2. scanf(%d%*c%c%f,a,b,c); //%*c表示跳过要给数据项 3. scanf(%d,a); getchar(); //吃掉空格 scanf(%c,b); scanf(%f,c);8.注意scanf最后不要写\n不然输入不能结束原因格式控制字符串中如果出现了空白符则表示匹配任意多个空白符