91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++的輸出格式控制技巧是什么

發布時間:2021-11-30 15:55:16 來源:億速云 閱讀:156 作者:iii 欄目:編程語言

本篇內容主要講解“C++的輸出格式控制技巧是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“C++的輸出格式控制技巧是什么”吧!

C++中,將數據從一個對象到另一個對象的流動抽象為“流”(stream)。按流動的方向不同,構成輸入/輸出流。對于流數據的輸入輸出格式,C++提供了兩種不同的控制方式,一種是使用ios_base類提供的setf、width等函數設置輸入輸出格式,另一種是通過重載的格式控制符“<<”、“>>”以及流格式控制對象進行設置。

大部分流的輸入輸出格式可以用setf函數來設置。該函數有兩種重載形式。其但參數的setf原型為:

fmtflage setf(fmtfalg flag)

參數flag說明所要設置的格式,由ios_base給出,可取如下枚舉常量:

enum{  left =0x0001, //在域中靠左輸出  right =0x0002, //在域中靠右輸出  internal =0x0004, //符號靠左數值靠右輸出,中間默認以空格填充  dec =0x0008, //數值以十進制輸出  hex =0x0010, //以16進制輸出  oct =0x0020, //8進制輸出  fixed =0x0040, //浮點數以小數方式輸出  scientific =0x0080, //浮點數以科學計數方式輸出  boolalpha =0x0100, //布爾值以true/false方式輸出  showbase =0x0200, //8進制前面加0做指示符,16進制前面加0x做指示符  showpoint =0x0400, //不管小數點和尾部的0是否可省略不寫,都輸出小數點和0  showpos =0x0800, //在正數前面輸出+號  skipws =0x1000, //不讀入空白字符(空格,制表符\t,回車\r,和換行\n)  unitbuf =0x2000, //每次寫入數據都刷新到相應設備  uppercase =0x4000, //科學計數法的"e"和16進制計數的"x",大寫輸出為"E"和"X"  adjustfield =left | right | internal, //一般用作對齊方式的屏蔽碼  basefield =dec | hex | oct, //一般用作數值進制輸出方式的屏蔽碼  floatfield =scientific | fixed //一般用作浮點數輸出方式的屏蔽碼  };

一般用派生類ios作前綴”ios::”使用以上枚舉值.

Setf函數的另一個使用原型如下:

Fmtflags setf(fmtflags flag,fmtflags mask)

其中第二個函數mask為隱碼格式.例如設置adjustfield,basefield和floatfield格式.組成隱碼格式的所有格式會首先被復位,然后用***個參數flag去設置新格式.

對于setf函數設置的格式,可用unsetf函數進行復位.下面是他的原型,參數mask為所要復位的格式.

Void unsetf(fmtflags mask)

下面程序使用setf/unsetf函數對內建的cout流進行格式設置和復位.

#include  using namespace std;  int main(void)  {  //科學計數方式顯示,大寫E  cout.setf(ios::scientific | ios::uppercase);  cout<<2006.5<  //下面的showpos不起作用,不會顯示出"+"號  cout.setf(ios::floatfield,ios::fixed | ios::showpos);  cout<<2006.5<  //顯示"+"號  cout.setf(ios::showpos);  cout<<2006.5<  return 0;  }

對于流的其他格式,如輸出的最小寬域、數值精度以及填充字符的格式設置,可以使用ios_base類提供的width和precision函數,以及ios類提供的fill函數.

Width函數用newwidth設置新的最小域寬,如果輸出不足以占滿整個域,會補充適當的前導空格或者前導0.

Streamsize width(streamsize newwidth)

默認的數值精度為6位有效數字,可用precision函數將參數newprecision設置為新的精度值,數值輸出時會按這個精度進行必要的四舍五入.

Streamsize precision(streamsize newprecision)

默認的填充字符為空格字符,可以用fill函數將參數fill_char字符設置為填充字符

Char_type fill(char_type fill_char)

下面示例程序對cout流進行了域寬、精度和填充字符等流格式進行了設置。

#include  using namespace std;  int main(void)  {  cout.width(20);  cout<<"hello"<  cout.precision(4);  cout<<2009.228<  cout.precision(5);  cout<<2009.228<  cout.precision(7);  cout<<2009.228<  cout.width(20);  cout.fill('*');  cout<<"baby"<  return 0;

到此,相信大家對“C++的輸出格式控制技巧是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

兴安盟| 扶沟县| 根河市| 吕梁市| 青田县| 绥江县| 东莞市| 睢宁县| 南靖县| 舞钢市| 拉萨市| 九寨沟县| 鄂托克旗| 石城县| 固始县| 金川县| 富川| 龙南县| 红安县| 淳安县| 固始县| 苍南县| 常熟市| 巴东县| 尉氏县| 新干县| 启东市| 辽阳县| 鄱阳县| 阿坝| 宁德市| 孝义市| 栾川县| 富川| 韶山市| 凌源市| 昌图县| 房产| 缙云县| 华容县| 晋宁县|