用過c語言的都知道c語言的精度格式控制非常簡單容易,剛學C++也許還不懂怎麼在C++中使用這些功能.這裡有兩個方法來使用這些功能.
變量使用:
int n = 64;
double d = 123.45;
double d2 = 0.0183;
一.使用流操縱算子
首先得包含頭文件
1.寬度控制
cout << n << '#' << endl;
//寬度控制不會影響下一個變量
cout << setw(10) << n << '#' << endl;//默認右對齊
cout << n << '#' << endl;
2.對齊控制
//對齊控制會影響下面的變量對其方式
cout << setw(10) << setiosflags(ios::left) << n << '#' << endl;//左對齊
cout << setw(10) << n << '#' << endl;
cout << setw(10) << setiosflags(ios::right) << n << '#' << endl;//還原成右對齊
//cout << setw(10) << resetiosflags(ios::left) << n << '#' << endl << endl;//還原成右對齊
3.填充控制
//填充控制會影響下面的輸出
cout << setw(10) << setfill('@') << n << '#' << endl;
cout << setw(10) << n << '#' << endl;
cout << setw(10) << setfill(' ') << n << '#' << endl; //還原成空格填充
4.精度控制
//精度控制會影響下面的輸出
cout << setprecision(4) << d << endl; //控制有效數字的位數
cout << setprecision(2) << d2 << endl;//四捨五入,而不是簡單的截斷
cout << d << endl;
cout << setiosflags(ios::fixed); //控制小數點後面的位數
cout << setprecision(4) << d << endl; //同樣是四捨五入
cout << setprecision(2) << d2 << endl;
5.進制控制
cout << "dec: " << n << endl;
cout <<"oct: "<
二.以流成員函數的方式(不用包含iomanip頭文件)
1.寬度控制
cout << n << endl;
cout.width(10);
cout << n << '#' << endl;
2.對齊控制
cout << n << endl;
cout.width(10);
cout.setf(ios::left);
cout << n << '#' << endl;
// cout.width(10);
// cout.setf(ios::right);
// cout << n << '#' << endl;
cout.width(10);
cout.unsetf(ios::left);
cout << n << '#' << endl;
3.填充控制
cout << n <<'#'<< endl;
cout.width(10);
cout.fill('@');
cout << n << '#' << endl;
cout.width(10);
cout << n << '#' << endl;
cout.width(10);
cout.fill(' ');
cout << n << '#' << endl;
4.精度控制
cout.precision(2); //這個會影響下面的輸出
cout << d << endl;
cout << d2 << endl;
cout.setf(ios::fixed); //控制小數點位數
cout << d << endl;
cout << d2 << endl;
5.進制控制
cout.unsetf(ios::dec); //要切換進制的時候需要先去掉原先的進制
cout.setf(ios::oct);
cout << n << endl;
輸出為100.