5.输入输出
-
c语言本身不提供输入输出,所有的输入输出都是通过调用标准库函数实现---》#include <stdio.h>
5.1 printf --格式化输出
printf("字符串");
printf("格式控制字符串",输出列表);
格式控制字符串:格式控制符 + 其它字符
printf("%d\n",10);
格式控制符:
%d -- 十进制有符号整数 -- 4个字节
%ld -- 输出十进制长整型数据
%md -- 输出的数据占m(整数)域宽 默认右对齐
%-md -- 输出的数据占m(整数)域宽 左对齐
%0md -- 输出的数据占m(整数)域宽 用0补齐空位
%o -- 输出八进制无符号整数
%#o --输出八进制无符号整数 (带前缀0)
%x -- 输出十六进制无符号整数
%#x
%u -- 输出无符号整数
%f -- 输出浮点型数据 --默认保留6位有效数字,超过六位第七位四舍五入
%.nf -- 输出浮点型数据 --精确到小数点后第n位 -- n是一个整数
%mf ---
%m.nf --
%lf
%e -- 按照指数形式输出浮点型数据
%c -- 输出单个字符
%s -- 输出字符串 -- 字符串的首地址
%% -- 输出%
%p -- 输出地址
其他字符:按照原样输出
输出列表:如果格式控制字符串里面有格式控制符,输出列表的数据要与格式控制字符串里的格式控制符从左到右一一对应
总结:函数调用时,参数需要从右到左依次入栈,在入栈时后++(a++)需要备份,出栈时有备份先打印备份,无备份打印最后真值。
栈:是一种先入后出的数据结构
缓冲区:是一段存储空间,一般用来暂存数据。
注意:printf并不是直接将数据输出到终端,而是先将数据写入输出缓冲区(stdout),当缓冲区中遇到\n或者程序结束时会将缓冲的数据刷新到终端。
练习1: int a = 10;
printf("%d %d %d %d\n",a++,++a,a++,++a);
| a = 10 | 备份 | 真值 |
|---|---|---|
| a++ | 13 | 14 |
| ++a | 13 | |
| a++ | 11 | 12 |
| ++a | 11 |
输出 13 14 11 14
练习2:int a = 10;
printf("%d %d %d %d",++a,a++,++a,a++);
| 备份 | 真值 | |
|---|---|---|
| ++a | 14 | |
| a++ | 12 | 13 |
| ++a | 12 | |
| a++ | 10 | 11 |
输出 14 12 14 10
5.2 scanf -- 格式化输入
scanf("格式控制字符串",地址列表);
格式控制字符串:格式控制符 + 其它字符
格式控制符:
%d --- 十进制有符号整数
%f
%lf
%c --- 输入单个字符
%s --- 输入字符串
其它字符:原样输入
地址列表:从左到右与格式控制字符串里的格式一一对应。
& :作为单目运算符,代表取地址(变量) --- 变量的首地址(低地址)
注意1:在输入数值型数据时,空格、回车、TAB都算是非法字符(\n \t 空格不被捕获)
注意2: 在输入字符型数据时,空格、回车、TAB都算是有效字符 ---脏字符
char str[20];
5.3 字符输入输出
-
getchar
getchar(); char ch =getchar(); e.g.1: char ch = 0; getchar(ch);//error 报错
-
putchar
putchar(字符); char ch = 'x'; printf("%c\n",ch); putchar(ch); == putchar('x');
5.4 字符串输入输出
-
gets
gets(字符数组的首地址); char str[20]; gets(str);
-
puts
puts(字符串的首地址); char str[] = "hello world"; puts(str); puts("hello world"); 注意:puts函数会自动换行。
练习1:输入一个3位整数(100-999),输出个位、十位、百位。
int a = 0;
scanf("%d",&a);
printf("%d %d %d",a / 100,a / 10 % 10,a % 10);
练习2:输入一个整数,输出该整数的每一位。
本文介绍了C语言中的输入输出函数,如printf用于格式化输出,包括各种格式控制符如%d,%o,%x等,以及对输出列表的处理。同时,文章讲解了scanf用于格式化输入,以及字符和字符串的输入输出函数getchar,putchar,gets,puts。还提到了输入输出的缓冲区机制和一些注意事项。
902

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



