printf vs cout
¶printf vs cout
原文連結: https://darkblack01.blogspot.com/2014/01/printf-vs-cout.html
移植時的最後更新日期: 2015-12-23T14:16:57.684+08:00
這篇文章所有的程式碼,都是使用Sublime Text 2 + minGW的g++
#include <iostream>
#include <iomanip>
#include <string>
#include <cstdio>
using namespace std;
int main()
{
/sample code/
return 0;
}
保留顯示空間,向右對齊
printf("%3d", 10);
cout.width(3);
cout << 10;
cout << setw(3) << 10;
空白填入的字元
(不行填入字串)cout.width(3);
cout.fill(’@’);
cout << 10;
cout << setw(3) << setfill(’@’) << 10;
8/10/16進制
printf("%d\n", 10);
printf("%x\n", 10);
printf("%o\n", 10);
cout << dec << 10 << endl;
cout << hex << 10 << endl;
cout << oct << 10 << endl;
設定小數點格式輸出
printf("%2.2f\n", pi);
小數點顯示設定位數
有這一個就變成不含小數點,沒有的話就要含小數點cout.setf(ios::fixed, ios::floatfield);
cout.setf(ios::fixed, ios::floatfield); //加了這一行precision()定義就變成小數點(不含)後數2位
cout.precision(2); //小數點(含)後數2位(原始定義變成無效)
cout.width(5); //2+1+2 小數點前2位+小數點+小數點後2位
cout << pi << endl;
cout.setf(ios::fixed, ios::floatfield); //加了這一行precision()定義就變成小數點(不含)後數2位
cout << setw(5) << setprecision(2) << pi << endl; //保留顯示總寬度至少5個字元,小數點(含)後2位
恢復預設的小數點顯示設定 cout.unsetf (ios::floatfield);
科學記號格式輸出
預設寬度
printf("%e\n", pi);
cout.setf(ios::scientific, ios::floatfield);
cout << pi << endl;
保留寬度
printf("%2.2e\n", pi);
cout.setf(ios::scientific, ios::floatfield);
cout << setw(5) << setprecision(2) << pi << endl;
cout.setf(ios::scientific, ios::floatfield);
cout.precision(2); //設定小數位數2位
cout.width(5);
cout << pi << endl;
參考資料:
[PPT]C/C++ch4
C Gossip: printf() 與 scanf()
發表於
tags:
{ C_and_Cpp }