输入输出(IO) 
目录
参考资料:
转义字符 
| 字符形式 | 含义 | ASCII 代码 | 
|---|---|---|
| \a | 响铃 | 7 | 
| \n | 换行 | 10 | 
| \t | 水平制表(跳到下一个 Tab 位置) | 9 | 
| \b | 退格,将位置移到前一列 | 8 | 
| \r | 回车,将位置移到本行开头 | 13 | 
| \f | 换页,将位置移到下一页开头 | 12 | 
| \v | 竖向跳格 | 8 | 
| \\ | \ | 92 | 
| \' | ' | 39 | 
| \" | " | 34 | 
| \0 | 空字符 | 0 | 
| \ddd | 1~3 位八进制数所代表字符 | |
| \xhh | 1~2 位十六进制数所代表字符 | 
printf() (C) 
c
printf("%.2f",a);	//以2位小数输出a
printf("%3d",a);	//不足3位整数前面补空格
printf("%03d",a);	//不足3位整数前面补0
printf("%%");		//输出一个%
// printf('c'); //输出没有\0 的字符串时会出错scanf() (C) 
- sacnf 以空格或换行符作为输入的结尾 - 返回值为成功输入数据个数
- 没东西输入返回-1?
 
c
scanf("%d%f%c",&a,&b,&c);//用于输入数据,数据间以空格或回车区分,不读取空格占位符 
常用:
- %c: 字符。
- %d: 十进制整数。
- %i: 整数,基本等同于%d。
- %f: 小数(包含 float 类型和 double 类型)。
- %ld: 十进制 long int 类型。
- %o: 八进制整数。
- %x: 十六进制整数。
- %u: 无符号整数(unsigned int)。
- %s: 字符串。
其他:
- %a: 十六进制浮点数,字母输出为小写。
- %A: 十六进制浮点数,字母输出为大写。
- %e: 使用科学计数法的浮点数,指数部分的 e 为小写。
- %E: 使用科学计数法的浮点数,指数部分的 E 为大写。
- %g: 6 个有效数字的浮点数。整数部分一旦超过 6 位,就会自动转为科学计数法,指数部分的 e 为小写。
- %G: 等同于%g,唯一的区别是指数部分的 E 为大写。
- %hd: 十进制 short int 类型。
- %ho: 八进制 short int 类型。
- %hx: 十六进制 short int 类型。
- %hu: unsigned short int 类型。
- %lo: 八进制 long int 类型。
- %lx: 十六进制 long int 类型。
- %lu: unsigned long int 类型。
- %lld: 十进制 long long int 类型。
- %llo: 八进制 long long int 类型。
- %llx: 十六进制 long long int 类型。
- %llu: unsigned long long int 类型。
- %Le: 科学计数法表示的 long double 类型浮点数。
- %Lf: long double 类型浮点数。
- %n: 已输出的字符串数量。该占位符本身不输出,只将值存储在指定变量之中。
- %p: 指针。
- %zd: size_t 类型。
- %%: 输出一个百分号。
getchar() (C) 
c
char c;
c=getchar();
// 得到一个字符的ASCLL码//也可以赋给整形,或不赋值
// 其实挺常用的
// 用于程序停顿,输入任意字符+回车继续putchar() (C) 
c
// putchar()
putchar(c); //输出一个字符
putchar(66);//输出Bputs() (C) 
c
puts(a);//输出字符串agets() (C) (已被废弃) 
C
gets(a);//输入字符串
//gets只以回车作为输入结束的标志,会读入空格cout&cin(C++) 
- cin 遇到空格、'\0'、'\n'或 enter 时停止
c
cin>>str;	//用字符数组名输入字符串,注意cin会在遇到空格时停止
cout<<str;	//用字符数组名输出字符串,输出时遇到第一个就‘\0’停止,且不会输出‘\0’
			//'\0'也可视为NULL
cout<<″We must study C\ 	//"\"为续行符(不输出)
++ hard!″;
cout<<a=b;		//错误
cout<<(a=b);	//正确//cout后跟赋值表达式要加括号
cout<<7<<endl;	//可以直接输出数字cin 出错时
c
cin.clear();
cin.ignore(INT_MAX, '\n');cin 和 cout 的其他用法
c
cout<<a;
cout.put(a[1]);//等价于cout<<a[1];
cout.write(a,3);//输出a中前3个数
cin.getline(字符数组名,字符串长度,规定的结束符);
cin.get(字符数组名,字符串长度,规定的结束符);
//在满足字符串长度(包括‘\0’)或遇到规定的结束符(不会输入)时结束
//剩下的字符会存在缓存中,可用cin或get等输入
//可输入\n
eg:
cin.get(a,10,'h');
//剩下的字符开头就是h,所以a变为空
cin.get(a,10,'h');控制符 (C++) 
| dec | 设置以十进制方式输出 | 
|---|---|
| oct | 设置以八进制方式输出 | 
| hex | 设置以十六进制方式输出 | 
| setfill(c) | 设填充字符 c | 
| setprecision(n) | 设浮点数的有效位数为 n | 
| setw(n) | 设域宽为 n 个字符 | 
| setiosflags(ios::fixed) | 固定的浮点显示 | 
| setiosflags(ios::scientific) | 指数表示 | 
| setiosflags(ios::left) | 左对齐 | 
| setiosflags(ios::right) | 右对齐 | 
| setiosflags(ios::skipws) | 忽略前导空白 | 
| setiosflags(ios::uppercase) | 十六进制数大写输出 | 
| setiosflags(ios::lowercase) | 十六进制数小写输出 | 
| setiosflags(ios::showpoint) | 显示小数点 | 
| setiosflags(ios::showpos) | 显示正数符号 | 
c
输出双精度数
double a=123.456789012345;	//对a赋初值
cout<<a;    				//输出:123.456
cout<<setprecision(9)<<a; 	//输出:123.456789
cout<<setprecision(6);    	//恢复默认格式(精度为6)
cout<<setiosflags(ios∷fixed);                       	//输出:123.456789
cout<<setiosflags(ios∷fixed)<<setprecision(8)<<a;      	//输出:123.45678901
cout<<setiosflags(ios∷scientific)<<a;                 	//输出:1.234568e+02
cout<<setiosflags(ios∷scientific)<<setprecision(4)<<a;  //输出:1.2346e02
输出整数
int b=123456;   						//对b赋初值
cout<<b;                                //输出:123456
cout<<hex<<b;                           //输出:1e240
cout<<setiosflags(ios∷uppercase)<<b;   //输出:1E240
cout<<setw(10)<<b<<','<<b;              //输出:   123456,123456
cout<<setfill('*')<<setw(10)<<b;        //输出:****123456
cout<<setiosflags(ios∷showpos)<<b;     //输出:+123456tips:字段宽度为 10,右对齐,取两位小数即可实现上下小数点对齐
