歸納編程學習的感悟,
記錄奮斗路上的點滴,
希望能幫到一樣刻苦的你!
如有不足歡迎指正!
共同學習交流!
??歡迎各位→點贊 ??+ 收藏? + 留言???
含淚播種的人一定能含笑收獲!
一起加油!
目錄
前言:
?用ios類成員函數(shù)實現(xiàn)格式化輸入/輸出:
1.控制輸入/輸出的標志位:
2.控制輸出格式的成員函數(shù):?
前言:
????????以上介紹的都是按照系統(tǒng)默認的格式進行輸入/輸出,即無格式輸入/輸出,主要針對簡單的程序和數(shù)據(jù),為了方便采取了默認的格式。然而,有時程序需要按照特定的格式進行輸入/輸出.例如,要求用十六進制輸出整數(shù),或者對輸出的小數(shù)只保留三位小數(shù)等,這種按指定的格式輸出,被稱為格式化輸入輸出。C++提供了兩種方法可以進行輸入/輸出格式化的操作:一種是用IOS類成員函數(shù)控制格式,另一種是利用特定的操作符函數(shù)實現(xiàn)格式控制。
?用ios類成員函數(shù)實現(xiàn)格式化輸入/輸出:
該方法要使用ios類中定義的用來控制格式的標志位和用來設置格式的成員函數(shù)。
1.控制輸入/輸出的標志位:
????????在流類庫根類ios base 中,有一個作為數(shù)據(jù)成員的格式控制變量,用來記錄格式標志;通過設置標志,可以控制格式化輸入/輸出效果。各種格式標志被定義為枚舉類型中的一組符號常量該枚舉的定義如下:
enum
{
skipws=0x0001
left=0x0002
right=0x0004
internal=0x0008
dec==0x0010
oct=0x0020
hex=0x0040
showbase-0x0080
showpoint=0x0100
uppercase=0x0200
showpos=0x0400
scientific=0x0800
fixed=0x1000
unitbuf=0x2000
stdio=0x4000}
此枚舉類型的每個成員分別定義標志位的一個位。其每個位表示不同的含義,引用這些格式標志時要在前面加上類名ios和域運算符“::”。
ios::skipws????????????0x0001? ? ? ? ? ?? 跳過輸入中的空白符
ios::left??????????????0x0002?????????????????輸出數(shù)據(jù)按輸出域左對齊
ios::right????????0x0004? ? ? ? ? ? ? ? ? ?? 輸出數(shù)據(jù)按輸出域右對齊
ios::internal????????0x0008? ??數(shù)據(jù)的符號左對齊,數(shù)據(jù)本身右對齊,符號和數(shù)據(jù)之間為填充符
ios::dec????????????0x0010? ? ? ? ? ? ? ? ? 轉(zhuǎn)換基數(shù)為十進制形式?ios::oct? ?0x0020? ?轉(zhuǎn)換基數(shù)為八進制形式
ios::hex? ?0x0040? ?轉(zhuǎn)換基數(shù)為十六進制形式
ios::showbase? ?0x0080? ? 輸出的數(shù)值數(shù)據(jù)前面帶有基數(shù)符號(0或0x)
ios::showpoint? ?0x0100? ?浮點數(shù)輸出帶有小數(shù)點
ios::uppercase? ?0x0200? ?用大寫字母輸出十六進制數(shù)值
ios::showpos? ?0x0400? ?正數(shù)前面帶有符號“+”
ios::scientific? ?0x0800? ?浮點數(shù)輸出待用科學表示法
ios::fixed? ?0x1000? ?使用定點數(shù)(小數(shù))形式表示浮點數(shù)
ios::unitbuf? ?0x2000? ?完成輸入操作后立即刷新流的緩沖區(qū)
ios::stdio? ?0x4000? ? 完成輸入操作后刷新系統(tǒng)的stdout.stderr
2.控制輸出格式的成員函數(shù):?
IOS類提供了幾個用于控制輸入/輸出格式的成員函數(shù)。
long flags()該函數(shù)返回當前標志字
long flags(long)該函數(shù)使用參數(shù)更新標志字,并返回更新前的標志字
long setf(long setbits,long field)該函數(shù)用來將field參數(shù)所指定的標志位清零,將setbits參數(shù)的標志位置1,并返回設置前的標志字
long setf (long)該函數(shù)用來設置參數(shù)的指定的標志位,并返回更新前的標志字
long unsetf (long)該函數(shù)用來清除參數(shù)的指定的標志位,并返回更新前的標志字
int width()該函數(shù)用來返回當前輸入的數(shù)據(jù)寬度
int width(int)該函數(shù)用其參數(shù)設置當前輸出的數(shù)據(jù)寬度,并返回更新前的寬度值
char fill()該函數(shù)用來返回當前所用的填充符
char fill(char)該函數(shù)用來設置當前的填充符為參數(shù)給定的字符,并返回更新前的填充符設置浮點數(shù)輸出精度的成員函數(shù)
int (precision)該函數(shù)用來返回當前浮點數(shù)的有效數(shù)字的個數(shù)。浮點數(shù)的精度是用有效數(shù)字個數(shù)來表示
int precision(int)該函數(shù)用來設置當前浮點數(shù)輸出時有效數(shù)字個數(shù)為該函數(shù)所制定的參數(shù)值,并返回更新的,個數(shù)越大,表示精度越高前的值文章來源:http://www.zghlxwxcb.cn/news/detail-810678.html
????????以上就是我對C++I/O流——(4)格式化輸入/輸出(第一節(jié))的理解,希望本篇文章對你有所幫助,也希望可以支持支持博主,后續(xù)博主也會定期更新學習記錄,記錄學習過程中的點點滴滴。如果有不懂和發(fā)現(xiàn)問題的小伙伴,請在評論區(qū)說出來哦,同時我還會繼續(xù)更新對C++I/O流的理解,請持續(xù)關(guān)注我哦?。?!文章來源地址http://www.zghlxwxcb.cn/news/detail-810678.html
到了這里,關(guān)于C++I/O流——(4)格式化輸入/輸出(第一節(jié))的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!