第四章 基本输入/输出
4.1 格式化输出printf
- 整数的输出
% [-] / [+] / [.] / [width] / [l] / [h][-]:表示输出的数据左对齐,默认右对齐
[+]:表示加上+号
[width]:无符号整数,表示输出整数的最小域宽(占屏幕的多少格)
[.] :无符号整数,表示至少要输出多少位,如果整数的位数小于这个数,需要在左边的空位上补0
[l]:输出长整型数据
[h]:输出短整型数据
int a = 123;
long L = 65537;
printf("a=%6d-----(a=%%d)\n",a);
//输出:a= 123-----(a=%6d)
printf("a=%-6d-----(a=%%-6d)\n",a);
//输出:a=123 -----(a=%-6d)
printf("a=%-06d-----(a=%%-06d)\n",a);
//输出:a=123 -----(a=%-06d)
printf("a=%+06d-----(a=%%+06d)\n",a);
//输出:a=+00123-----(a=%+06d)
printf("a=%+6.6d----(a=%%+6.6d)\n",a);
//输出:a=+000123----(a=%+6.6d)
printf("a=%-6.5d-----(a=%%-6.5d)\n",a);
//输出:a=00123 -----(a=%-6.5d)
printf("a=%6.4d-----(a=%%6.4d)\n",a);
//输出:a= 0123-----(a=%6.4d)
prinf("%hd",L);
//输出:1 ,65537的十六进制:0x0001 0001 ,取低十六位,则为1
-
实数的输出
% [.] / [#] / [width] / [.] / [l|L]
[#] :必须输出小数点,如果是别的进制,如八进制,需要把前面的0输出来
[.] :规定输出实数时,小数部分的位数
[l] :输出double型数据;默认也是输出double数据
[L] :输出long double 型数据
- 字符和字符串的输出
输出字符: %[-] / [0] / [width] c
输出字符串: %[-] / [0] / [width] /[.] s
[.] :表示只输出字符串的前多少个字符
注意:
1:如果上一个不正常的输出会影响到下一个表达式的正常输出
如:printf(“a = %d, b = %d\n”,f,b) // float f =2; int a =10,b=100;
输出的f用了float但是用了%d,则不会正常输出2.000000
后面的b会被影响输出

4.2 格式化输入scanf
scanf(“格式控制字符串”,变量地址);
&只能作用于变量,不能作用于表达式,因为表达式不对应具体的内存单元,没有地址,只有值
- 控制符
* :为抑制符,输入的数据不会复制给相应的变量 - 注意:
使用格式控制符%c输入耽搁字符时候,空格和转义字符均作为有效字符被输入
scanf("%2d%*2d%3d",&num1,&num2); // 输入123456789
printf(“num1=%d,num2=%d\n”,num1,num2); //读取12赋值给num1;读取34舍掉;读取567赋值给num2. 输出结果:num1=12 , num2=567

4.3 字符数据的非格式化输入和输出
- 字符数据的非格式化输入
-
- getchar
返回值是用户输入的第一个字符
该函数没有参数,有一个int型返回值。
调用该函数的时候,程序就等待用户按键
- getchar
-
- getc
int getc (FILE *stream);
从流文件stream中读取一个字符信息,当流文件时stdin时,和getchar完全相同
- getc
-
- getche
int getche(void);
和getchar相同,唯一差别是:getche直接从键盘获取键值,不等待用户按回车键,只要用户按,则getche直接返回用户按键的ASCII码,同时用户输入的字符回显在屏幕上。
- getche
-
- getch
和getche功能相同,唯一差别为:getche回显输入的字符,但是getch不回显输入的字符。
- getch
-

-
字符数据的非格式化输出
-
- putchar(int c)
在显示器上输出的字符c
- putchar(int c)
-
- putc(int c, FILE * stream)
将字符输出到流文件stream,如果流文件为stdout,功能与putchar相同
- putc(int c, FILE * stream)
-
- puts(char * string)
将字符串string的所有字符输出到屏幕上,输出时将自动回车换行
- puts(char * string)
-
-
清除键盘缓冲区
fflush
4.4 碎小知识点
- 格式转换符中,除了X、E、G以外,其他均为小写字符。
- 算法的描述方法:自然语言描述、伪代码、流程图、N-S图
