亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

搜索

c++如何使用流(stream)進(jìn)行格式化輸入輸出 _c++流輸入輸出格式化技巧

裘德小鎮(zhèn)的故事
發(fā)布: 2025-10-15 17:46:01
原創(chuàng)
324人瀏覽過
C++流通過IO操縱符實(shí)現(xiàn)格式化控制,如setw設(shè)置字段寬度、setprecision控制精度、fixed/scientific調(diào)整浮點(diǎn)格式,left/right設(shè)置對(duì)齊,setfill指定填充字符;支持dec/hex/oct進(jìn)制輸出,showbase顯示前綴,showpos顯示正號(hào);輸入時(shí)可用getline讀取分隔數(shù)據(jù),ws跳過空白,ignore忽略內(nèi)容;自定義類型需重載<<和>>運(yùn)算符以支持流操作,注意setw僅作用于下次操作,setprecision在fixed下才表示小數(shù)位數(shù)。

c++如何使用流(stream)進(jìn)行格式化輸入輸出 _c++流輸入輸出格式化技巧

在C++中,流(stream)不僅是輸入輸出的基礎(chǔ)工具,還能通過多種方式實(shí)現(xiàn)格式化控制。相比C語言的printfscanf,C++的流操作更安全、更靈活,尤其適合復(fù)雜類型的處理。掌握流的格式化技巧,能讓你的程序輸出更清晰,輸入更可靠。

使用IO操縱符進(jìn)行格式化

C++提供了豐富的IO操縱符(manipulators),用于控制流的行為。這些操縱符定義在<iomanip>頭文件中,可以直接插入到流中使用。

常見格式化操縱符包括:

  • std::setw(n):設(shè)置下一個(gè)輸入或輸出字段的最小寬度
  • std::setprecision(n):設(shè)置浮點(diǎn)數(shù)的有效數(shù)字位數(shù)或小數(shù)位數(shù)(取決于浮點(diǎn)格式)
  • std::fixed:以固定小數(shù)點(diǎn)格式輸出浮點(diǎn)數(shù)
  • std::scientific:以科學(xué)計(jì)數(shù)法輸出浮點(diǎn)數(shù)
  • std::left / std::right:設(shè)置對(duì)齊方式
  • std::setfill(c):設(shè)置填充字符

示例:

立即學(xué)習(xí)C++免費(fèi)學(xué)習(xí)筆記(深入)”;

#include <iostream>
#include <iomanip>

int main() {
    double value = 3.1415926;
    std::cout << std::fixed << std::setprecision(2);
    std::cout << "Value: " << value << std::endl;

    std::cout << std::setw(10) << std::setfill('*') << 42 << std::endl;
    return 0;
}
登錄后復(fù)制

輸出:

飛書多維表格
飛書多維表格

表格形態(tài)的AI工作流搭建工具,支持批量化的AI創(chuàng)作與分析任務(wù),接入DeepSeek R1滿血版

飛書多維表格26
查看詳情 飛書多維表格
Value: 3.14
********42
登錄后復(fù)制

控制整數(shù)進(jìn)制與符號(hào)顯示

流支持以不同進(jìn)制輸出整數(shù),也能控制是否顯示正號(hào)、進(jìn)制前綴等。

  • std::dec:十進(jìn)制
  • std::hex:十六進(jìn)制
  • std::oct:八進(jìn)制
  • std::showbase:顯示進(jìn)制前綴(如0x)
  • std::showpos:顯示正數(shù)的+號(hào)

示例:

立即學(xué)習(xí)C++免費(fèi)學(xué)習(xí)筆記(深入)”;

int num = 255;
std::cout << std::showbase << std::showpos;
std::cout << "Hex: " << std::hex << num << '\n';
std::cout << "Oct: " << std::oct << num << '\n';
std::cout << "Dec: " << std::dec << num << std::endl;
登錄后復(fù)制

輸出:

Hex: +0xff
Oct: +0377
Dec: +255
登錄后復(fù)制

輸入流中的格式化處理

輸入流同樣支持格式控制。例如,跳過特定字符、限制讀取長(zhǎng)度、按字段讀取等。

  • 使用std::ws跳過空白字符
  • 結(jié)合std::getline讀取整行,支持自定義分隔符
  • istream::ignore忽略部分輸入

示例:讀取逗號(hào)分隔的數(shù)據(jù)

std::string name;
int age;
std::cout << "Enter name,age: ";
std::getline(std::cin, name, ',');
std::cin >> age;
登錄后復(fù)制

若輸入Alice,25,name為"Alice",age為25。

自定義類型的流操作支持

為了讓自定義類支持流操作,需重載<<>>運(yùn)算符。

例如:

struct Point {
    double x, y;
};

std::ostream& operator<<(std::ostream& os, const Point& p) {
    return os << "(" << p.x << ", " << p.y << ")";
}

std::istream& operator>>(std::istream& is, Point& p) {
    char ch;
    if (is >> ch && ch == '(')
        is >> p.x >> ch >> p.y >> ch;
    else
        is.setstate(std::ios::failbit);
    return is;
}
登錄后復(fù)制

這樣就可以像內(nèi)置類型一樣使用cin >> pointcout << point

基本上就這些。C++流的格式化能力強(qiáng)大,關(guān)鍵是熟悉常用操縱符和重載方法。不復(fù)雜但容易忽略細(xì)節(jié),比如setw只對(duì)下一次操作有效,或setprecisionfixed模式下才表示小數(shù)位數(shù)。多練習(xí)就能熟練掌握。

以上就是c++++如何使用流(stream)進(jìn)行格式化輸入輸出 _c++流輸入輸出格式化技巧的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!

相關(guān)標(biāo)簽:
c++速學(xué)教程(入門到精通)
c++速學(xué)教程(入門到精通)

c++怎么學(xué)習(xí)?c++怎么入門?c++在哪學(xué)?c++怎么學(xué)才快?不用擔(dān)心,這里為大家提供了c++速學(xué)教程(入門到精通),有需要的小伙伴保存下載就能學(xué)習(xí)啦!

下載
來源:php中文網(wǎng)
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系admin@php.cn
最新問題
開源免費(fèi)商場(chǎng)系統(tǒng)廣告
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板
關(guān)于我們 免責(zé)申明 意見反饋 講師合作 廣告合作 最新更新
php中文網(wǎng):公益在線php培訓(xùn),幫助PHP學(xué)習(xí)者快速成長(zhǎng)!
關(guān)注服務(wù)號(hào) 技術(shù)交流群
PHP中文網(wǎng)訂閱號(hào)
每天精選資源文章推送
PHP中文網(wǎng)APP
隨時(shí)隨地碎片化學(xué)習(xí)
PHP中文網(wǎng)抖音號(hào)
發(fā)現(xiàn)有趣的

Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號(hào)