使用操縱符控制輸出格式:
scientific:科學計數法(如 1.23e+02)fixed:定點十進制(如 123.00)hexfloat:十六進制浮點數(C++11)defaultfloat:恢復默認格式(C++11)最佳實踐:除非需要對齊列輸出或金額/百分比顯示,否則讓標準庫自動選擇。
showpoint 強制顯示小數點(即使小數部分為 0),noshowpoint 恢復默認。
cout << showpoint << 10.0 << noshowpoint << endl; // 輸出 10.0000
setw(w):下一個輸出佔寬至少 w 字符。left/right/internal:左對齊/右對齊(默認)/符號左數值右對齊。setfill(ch):填充字符,默認空格。<iomanip> 中其他常用操縱符:setprecision(n)、setbase(b)。
默認跳過空白符。noskipws 使 operator>> 讀取空白符,skipws 恢復。
cin >> noskipws; char ch; while (cin >> ch) cout << ch; // 會讀入空格、制表、換行 cin >> skipws; // 恢復
將流視為原始字節序列,不解釋格式。
| 函數 | 說明 |
|---|---|
is.get(ch) | 讀取單字節存入 ch,返回 is |
os.put(ch) | 寫入單字節,返回 os |
is.get() | 返回下一字節的 int 值 |
is.putback(ch) | 將 ch 放回流,必須是最後讀取的字符 |
is.unget() | 流退回一字節 |
is.peek() | 查看下一字節不取出 |
is.get(sink, size, delim):讀至 delim 或 size 或 EOF,delim 留在流中。is.getline(sink, size, delim):類似但讀取並丟棄 delim。is.read(sink, size):讀取 size 字節,返回 is。os.write(source, size):寫入 size 字節,返回 os。is.ignore(size, delim):讀並丟棄至 delim 或 size,默認 size=1, delim=EOF。is.gcount():返回上一次未格式化讀取操作讀取的字節數。get() 和 peek() 返回 int 而非 char,是為了區分 EOF(負值)與合法字符(轉為 unsigned char 再提升為 int,保證非負)。標準宏 EOF 定義在 <cstdio>。
int ch; while ((ch = cin.get()) != EOF) cout.put(ch);