1. 程式人生 > >C++格式化輸出流

C++格式化輸出流

有時ACM或者程式需要在輸入輸出時有一些特定格式,如在輸出實數時規定欄位寬度,只保留兩位小數,資料向左或向右對齊等。C++提供了在輸入輸出流中使用的控制符(有的書中稱為操縱符)

 - setfill(ch)                          設定填充字元ch,ch可以是字元常量或字元變數
 - setprecision(n)                      將浮點精度設定為n
 - setw(n)                              讀或寫值寬度為n個字元
 - setbase(int base)                    將整數輸出為base進位制
當base數值為 8 八進位制 10 十進位制 16 十六進位制 other 預設輸出 - setiosflags 設定資料格式為…… - resetiosflags 重置資料格式 - setiosflags (ios_base::fmtflags mask);

setiosflags能新增的fmtflags有如下

 - boolalpha        將true
false輸出為字串
- showbase 對整型值輸出表示進位制的字首 - showpoint 對浮點值總是顯示小數點 - showpos 對非負數顯示+ - skipws 輸入運算子跳過空白符 - unitbuf 每次輸出操作後都重新整理緩衝區 - uppercase 轉換為大寫輸出英文字元 - dec 整型值顯示為十進位制 - hex 整型值顯示為十六進位制 - oct 整型值顯示為八進位制
- fixed 設定浮點數以固定的小數位數顯示 - scientific 浮點值顯示為科學技術法 - internal 在符號和值之間新增填充字元 - left 在值的右側新增填充字元 - right 在值的左側新增填充字元

需要注意的是:以上函式包含在標頭檔案iomanip。(順便說一下從Linux GCC 4.8.0開始加入標頭檔案bits/stdc++.h,雖然不是標準標頭檔案,但這個標頭檔案著實順手,平時用的標頭檔案都在裡面)

定義在iostream中的操縱符

 - boolalpha               將truefalse輸出為字串
 - *noboolalpha            將truefalse輸出為10
 - showbase                對整型值輸出表示進位制的字首
 - *noshowbase             不生成表示進位制的字首
 - showpoint               對浮點值總是顯示小數點
 - *noshowpoint            只有當浮點值包含小數部分時才顯示小數點
 - showpos                 對非負數顯示+
 - *noshowpos              對非負數不顯示+
 - uppercase               在十六進位制值中列印0X,在科學記數法中列印E
 - *nouppercase            在十六進位制值中列印0x,在科學記數法中列印e
 - *dec                    整型值顯示為十進位制
 - hex                     整型值顯示為十六進位制
 - oct                     整型值顯示為十進位制
 - left                    在值的右側新增填充字元
 - right                   在值的左側新增填充字元
 - internal                在符號和值之間新增填充字元
 - fixed                   浮點值顯示為定點十進位制
 - scientific              浮點值顯示為科學技術法
 - hexfloat                浮點值顯示為十六進位制
 - defaultfloat            重置浮點數格式為十進位制
 - unitbuf                 每次輸出操作後都重新整理緩衝區
 - *nounitbuf              恢復正常的緩衝區重新整理方式
 - *skipws                 輸入運算子跳過空白符
 - noskipws                輸入運算子不跳過空白符
 - flush                   重新整理ostream緩衝區
 - ends                    插入空字元,然後重新整理ostream緩衝區
 - endl                    插入換行,然後重新整理ostream緩衝區
*表示為預設流狀態

相關推薦

C++格式化輸出

有時ACM或者程式需要在輸入輸出時有一些特定格式,如在輸出實數時規定欄位寬度,只保留兩位小數,資料向左或向右對齊等。C++提供了在輸入輸出流中使用的控制符(有的書中稱為操縱符) - setfill(ch)

C++輸入輸出加速器,關閉同步,ios::sync_with_stdio(false)和 cin.tie(0)

bsp c++ 語句 leetcode return ios 使用 而不是 關閉 leetcode練習時,總會發現運行時間短的代碼都會有類似: static int x=[](){ std::ios::sync_with_stdio(false); cin

<C++學習一>關於C++輸入輸出

cin.get 技術分享 測試結果 分享 line 遇到 關於 分享圖片 .com 本質:輸入輸出時以字節流進行抽取字節    ·cin 輸入流,遇到空白、制表等,輸入會停止。     重點把握的函數:     (1)cin.get(); //從流中讀取一個字符     (

C++輸入輸出:重定向

1、輸入輸出流 IO流類庫提供物件之間的資料互動服務 流類庫預定義了一批流物件,連線常用的外部裝置 可以定義所需的IO流物件,使用流庫提供的工作方式實現資料傳輸。 2、流類和流物件[比如視訊流,音訊流] 程式中,對資料的輸入/輸出是以位元組流實現的 應用程式對位元組

C++ 輸入輸出和檔案輸入輸出

輸出到檔案 #include <iostream> #include <fstream> using namespace std; int i = 100; ofstream file("1.txt"); //檔案輸出物件,檔名

C++輸入輸出的一些基礎類方法

#include<iostream> #include<iomanip> #include<cstdlib> #include<string> #include<cstring> #include<cmath> #include

C++格式化輸出C++輸出格式控制

在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進位制或八進位制形式輸出一個 整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。一種是我們已經介紹過的使用控制符的方法(詳情請檢視:C

c++中輸出cout和cerr及clog的區別

本人菜雞一個,初識c++,從深鑑科技給的main.cc檔案中開始學習c++,不懂輸出流控制,在網上查了資料後整理的:c語言標準輸出就printf一個,但是c++意思就是c的加強版唄,當然輸出自然可以多一點,有cout、cerr、clog,區別就在於三個都能做輸出,但是cout

C++ 輸入輸出之字串

字串流介紹 字串流以記憶體中使用者定義的字元陣列(字串)作為輸入輸出物件。字串流也有緩衝區,當緩衝區滿了(或遇到換行符),流緩衝的資料一起存入字元陣列。標頭檔案<strstream>1. 建立輸出字串流物件 ostrestream的建構函式: ostrestre

c++輸入輸出操作筆記

1.流的控制 iomanip          在使用格式化I/O時應包含此標頭檔案。stdiostream   用於混合使用C和C + +的I/O機制時,例如想將C程式轉變為C++程式 2.類繼承關係 ios是抽象基類,由它派生出istream類和ostream類,

C/C++輸入輸出總結

C++ I/O C++支援兩種I/O,第一種是從C語言繼承來的,一種是由C++定義的面向物件I/O系統。 1、int getchar(void);返回一個整數值,也可以指定這個值為char變數,因為這個字元包含於低位位元組中(高位位元組通常為0),如果有錯,getch

C++ 輸入輸出之檔案操作和檔案

使用成員函式read和write讀取二進位制檔案 istream &read(char *buffer, int len);ostream& write(constchar *buffer, int len)舉例:將一批資料存入磁碟檔案 student stu[2] = {{"Li", 100

C++格式化輸出

將 cout 的 flag 儲存到變數, 以便修改後的恢復 ostream::fmtflags old = cout.flag() ; // 無參將返回當前 flag 值 cout.flag(old) ; // 恢復到原先

c/c++輸入輸出iostream與stdio之間的區別

三者之間的區別  #include<iostream>     在新的標準C++中使用。#include<iostream>是標準的C++標頭檔案,任何符合標準的C++開發環境都要有這個標頭檔案,使用時一定要引入名稱空間"using namespa

C語言之基本算法38—格式化輸出10000以內的全部完數

() 下一個 nbsp define -a mod 保存 基本算法 -m //窮舉法! /* ================================================================== 題目:求10000以內的全部完數

C++格式化輸入輸出

對齊 res 寬度 put 小寫 實現 lower style 輸出數據 要實現格式化輸入輸出,程序需要包含 iostreams 標準標頭 <iomanip> 以定義幾個各自采用單個參數的操控器。 備註: 其中每個操控器都返回重載 basic_istre

搜集的 C#:String.Format數字格式化輸出

one 描述 enter 自定義 int padding 允許 如果 margin 今天需要用到 大額的金額數字轉換 ,上網搜了一下有人整理好了 於是轉載過來 ,備用 格式化處理大額度金額: String.Format("{0:N}", "628310.03") 628,3

c++中IO輸入輸出總結<二>

操作 clu 文件 blog trunc pub filename binary team 1 文件的打開和關閉 1.1 定義流對象   ifsteam iflie;//文件輸入流對象   ifsteam iflie;//文件輸出流對象   fsteam iflie;//文

C++的輸入輸出

spa har void .get zha fail end cout 輸入輸出 1. cin的參數不匹配時,會返回false。使用clear()成員函數重置錯誤位,sync()成員函數清空輸入流。 1 #include<iostream> 2 int c

Debug格式化輸出----基於C語言

ech msg define 函數實現 turn 程序 mes message 頭文件 Debug格式化輸出----基於C語言 1. 使用宏實現 舉例: #include <stdio.h> #define ECHO_COLOR_NONE "\