Cout输出应用 在main.cpp里输入程序如下: #include <iostream> //使能cin(),cout(); #include <stdlib.h> //使能exit(); #include <sstream>
#include <iomanip> //使能setbase(),setfill(),setw(),setprecision(),setiosflags()和resetiosflags(); //setbase( char x )是设置输出数字的基数,如输出进制数则用setbase(8);如输出进制数则用setbase(10);如输出进制数则用setbase(16); //setbase( char x )的参数x只能是,10和,其它参数无效,setbase对其后的cout都有影响;
//当程序需要在屏幕上显示输出时,可以使用插入操作符“<<”向cout输出流中插入字符; //例如: cout<<"I love C++\n"; //当程序需要执行键盘输入时,可以使用抽取操作符“>>”从cin输人流中抽取字符; //例如: int myAge; cin>>myAge; //I/O流的常用控制符如下: //dec 置基数为; //hex 置基数为; //oct 置基数为; //left 左对齐 //right 右对齐 //setiosflags(ios::left) 左对齐,left位于ios文件中 //setiosflags(ios::right) 右对齐,right位于ios文件中 //setiosflags(ios::uppercase) 控制进制数大写输出 //resetiosflags(ios::uppercase) 控制进制数小写输出
//setfill(c) 没填充字符为c,对其后的cout都有影响; //setw(n) 设置值的输出宽度为n个字符,仅仅影响下一个数值输出;
//setiosflags(ios::showpos) 强制显示正负号,对于浮点数和十进制数,正数将显示+;
//setiosflags(ios::fixed) 固定以小数方式显示 //setiosflags(ios::showpoint) 若只有整数部分,则强制显示小数点; //setprecision(n) 设置浮点数小数点后有n位小数;
//setiosflags(ios::scientific) 指数表示;
//注意:在使用setiosflags()之后,一定要使用resetiosflags(()恢复到默认设置;否则,会出现意想不到的错误; //例如:在cout<<setiosflags(ios::fixed)被使用完后,要调用cout<<resetiosflags(ios::fixed)恢复到默认设置; //注意:cout<<setiosflags(ios::lowercase); //控制进制数小写输出,在Visual studio C++2005中,不支持该语句;
//在不使用#include<iomanip>时,cout.setf(ios::right); //设置为右对齐输出;
//浮点数默认显示位有效位; using namespace std; //告诉编译器使用std标准程序库; int main() { cout<<"设置浮点数的有效位数\n"; double float_value=220.0/7; cout<<setiosflags(ios::fixed); //固定以小数方式显示 cout<<setiosflags(ios::showpoint); //若只有整数部分,则强制显示小数点; cout<<"浮点数默认显示: "<<float_value<<endl; //浮点数默认显示,小数点后面有位小数; cout<<"浮点数显示位小数: "<<setprecision(1)<<float_value<<endl; cout<<"浮点数不显示小数: "<<setprecision(0)<<float_value<<endl; cout<<"浮点数显示位小数: "<<setprecision(2)<<float_value<<endl; cout<<"浮点数显示位小数: "<<setprecision(3)<<float_value<<endl; cout<<"浮点数显示位小数"<<setprecision(8)<<float_value<<endl; cout<<resetiosflags(ios::fixed); //不再固定以小数方式显示 cout<<resetiosflags(ios::showpoint); //若只有整数部分,则强制显示小数点;
cout<<"\n设置强制显示正负号\n"; cout<<setiosflags(ios::showpos); //强制显示正负号; cout<<setiosflags(ios::fixed); //固定以小数方式显示 cout<<setiosflags(ios::showpoint); //若只有整数部分,则强制显示小数点; cout<<"浮点数显示位小数"<<setprecision(8)<<float_value<<endl; cout<<resetiosflags(ios::fixed); //不再固定以小数方式显示 cout<<resetiosflags(ios::showpoint); //若只有整数部分,则强制显示小数点; cout<<resetiosflags(ios::showpos); //不强制显示正负号; cout<<"设置不强制显示正负号\n\n";
cout<<"浮点数用科学计数法表示: "; cout<<setiosflags(ios::scientific); cout<<float_value<<endl; cout<<resetiosflags(ios::scientific); //不再用科学计数法表示;
cout<<"\n设置用小数方式显示\n"; double f1,f2,f3; f1=1; f2=12; f3=101.1234; cout<<setiosflags(ios::fixed); //固定以小数方式显示 cout<<setiosflags(ios::showpoint); //若只有整数部分,则强制显示小数点; cout<<setprecision(8); //浮点数只有位有效值 cout<<"f1= "<<f1<<endl; cout<<"f2= "<<f2<<endl; cout<<"f3= "<<f3<<endl; cout<<setprecision(1); //浮点数只有位有效值 cout<<"f3= "<<f3<<endl; cout<<resetiosflags(ios::fixed); //不再固定以小数方式显示 cout<<resetiosflags(ios::showpoint); //若只有整数部分,则强制显示小数点;
cout<<"\n测试左右输出对齐\n"; int i; //cout.setf(ios::right); //设置为右对齐输出; cout<<setiosflags(ios::right); //设置为右对齐输出; //cout<<right; //设置为左对齐输出; for(i=8;i<13;i++) { cout<<setw(5); //设域宽为个字符; cout<<setfill('*'); //填充字符为*; cout<<i; if(i==12) cout<<endl; } cout<<resetiosflags(ios::right); //恢复默认设置;
//cout.setf(ios::left); //设置为左对齐输出; cout<<setiosflags(ios::left); //设置为左对齐输出; //cout<<left; //设置为左对齐输出; for(i=8;i<13;i++) { cout<<setw(5); cout<<setfill('*'); cout<<i; if(i==12) cout<<endl; } cout<<setiosflags(ios::left); //恢复默认设置,设置为左对齐输出; cout<<setw(0); //恢复默认设置
cout<<"\n按照进制数显示:\n"; for(i=8;i<13;i++) { cout<<dec; //设置为进制输出; cout<<" "<<i; } cout<<"\n按照进制数显示:\n"; for(i=8;i<13;i++) { cout<<hex; //设置为进制输出; cout<<" "<<i; } cout<<"\n按照进制数显示:\n"; for(i=8;i<13;i++) { cout<<oct; //设置为进制输出; cout<<" "<<i; }
cout<<"\n控制进制数小写输出:\n"; //cout<<setiosflags(ios::lowercase); //在Visual studio C++2005中,不支持该语句; cout<<resetiosflags(ios::uppercase); //恢复默认设置,16进制小写字母输出; for(i=8;i<13;i++) { cout<<hex<<" "<<i; } cout<<"\n控制进制数大写输出:\n"; cout<<setiosflags(ios::uppercase); //控制进制数大写输出 for(i=8;i<13;i++) { cout<<hex<<" "<<i; } cout<<resetiosflags(ios::uppercase); //恢复默认设置,16进制小写字母输出;
cout<<"\nskipws忽略空白输出:\n"; istringstream cstr(" 1 2 3 4 5 6 7 8 9"); char a; cstr>>skipws; //跳过空格输入; for(i=0;i<9;i++) { cstr>>a; cout << a; if(a=='9') cout << endl; } system("pause"); //程序暂停,按任意键继续执行; cout<<"\nskipws不忽略空白输出:\n"; cstr.seekg(0); //seekg设置获取指针的位置为起始位置; cstr>>noskipws; //不跳过空格输入; for(i=0;i<18;i++) { cstr>>a; cout << a; if(a=='9') cout << endl; } return(0); //退出函数; }
//参考:http://www.cplusplus.com/reference/iostream/istringstream/ |