C++输入输出
C++输入输出
1、C++输入输出流
cin,cout,头文件< iostream >
当遇到大数据时,即读写量在1e5以上,就可能导致超时(具体还要根据算法复杂度判断),所以在读写之前添加两行代码来加快运行速度
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
注:此时不能cin/cout和scanf/printf混用,比较合理的解释:默认情况,cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输 出顺序错乱。正因为这个兼容性的特性,导致cin有许多额外的开销,如何禁用这个特性呢?只需一个语句 std::ios::sync_with_stdio(false);,这样就可以取消cin于stdin的同步了,此时的cin就与scanf差不多 了。
2、输出格式函数
封装在< iomanip >库中
-
setw(n)——设置宽度为n
int num = 1234; cout<<setw(5)<<num<<endl;
运行结果:
- setfill(ch)——设置填充为ch字符
int num = 1234;
cout<<setw(5)<<setfill('A')<<num<<endl;
运行结果
- setprecision(n)设置有效数字
double num = 1234.56;
cout<<setprecision(5)<<num<<endl;
//结果为 1234.6//某些要求精度,保留一位数的可以用这个搞
double num = 1234.56;
cout<<setprecision(3)<<num<<endl;
//结果为 1.23e+003
double num = 1234.56;
cout<<setprecision(10)<<num<<endl;
//结果为 1234.56
注:cin和cout输入输出数据时,全部使用了系统默认的格式。我们可设置转换基数的操纵符hex(十六进制),dec(十进制),oct(八进制)。例:
int x=25;
cout<<hex<<x<<endl;//十六进制
cout<<dec<<x<<endl;//十进制
cout<<oct<<x<<endl;//八进制
运行结果: