首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 中 setw() 函數詳解:輸出格式化的利器

     編輯:程式設計綜合問答

setw() 是什麼?

setw() 是 C++ 標準庫 <iomanip> 中的流操縱符,全稱 set width,用於**設置下一個輸出項目的最小寬度**。

基本語法

#include <iomanip>
// ...
std::cout << std::setw(寬度) << 輸出值;

核心特性

  • 一次性生效:只對緊隨其后的**下一次**輸出操作有效,之後自動恢復默認寬度。
  • 不足補齊,超寬不截斷:若實際輸出字符數小於指定寬度,默認在左側填充空格;若超過指定寬度,按實際長度輸出,不會截斷。
  • 配合 setfill() 自定義填充字符:默認填充空格,可用 std::setfill('*') 修改。

實戰示例

#include <iostream>
#include <iomanip>

int main() {
    int num = 42;
    double pi = 3.14159;

    // 基本用法:右對齊,左側補空格
    std::cout << "默認右對齊:" << std::endl;
    std::cout << std::setw(10) << num << std::endl;   // 輸出: "        42"
    std::cout << std::setw(10) << pi << std::endl;    // 輸出: "   3.14159"

    // 修改填充字符為 '0',常用於數字對齊
    std::cout << std::setfill('0');
    std::cout << "填充 0:" << std::endl;
    std::cout << std::setw(6) << num << std::endl;    // 輸出: "000042"

    // 配合 left 實現左對齊
    std::cout << std::left << std::setfill(' ');
    std::cout << "左對齊:" << std::endl;
    std::cout << std::setw(10) << "Hello" << std::endl; // 輸出: "Hello     "

    return 0;
}

常見應用場景

  1. 表格式輸出:讓列數據整齊對齊,提升可讀性。
  2. 報表生成:固定寬度字段輸出,如賬號、金額等。
  3. 調試輸出:結構化打印變量值,便於對比。

注意事項

  • 必須包含 <iomanip> 頭文件。
  • setw 不會改變流的永久格式狀態,屬於「一次性」操縱符。
  • 輸入流 std::cin 也可使用 setw 限制讀取字符數(如防止緩衝區溢出)。

掌握 setw() 及其夥伴 setfill()、left/right,能讓你的控制台輸出瞬間專業化,是 C++ 格式化輸出的基石技能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved