操縱符
作用endl
輸出時換行並重新整理流
ends
輸出時在字串後插入空字元(null)作為尾符
flush
重新整理,把流從緩衝區輸入到目標裝置
ws輸入時略去空白字元
dec以十進位制形式輸入或輸出整型數
hex以十六進製制形式輸入或輸出整型數
oct以八進位制形式輸入或輸出整形數
這些操縱符可以直接跟在 「cout」 或 「cin」 之後使用,如:
cout << hex << a << endl ;
是把 a 用十六進製制輸出後再換行。
操縱符作用
setbase(int n)
設定轉換基數為n(0、8、10、16),預設為0,表十進位制
resetiosflags(long f)
消除引數f指定的標誌位,同時用於輸入輸出
setiosflags(long f)
設定引數f指定的標誌位
setfill(char c)
設定填充字元
setprecision(int n)
設定浮點數精度(預設為6)
setw(int n)
設定域寬
操縱符可代替 ios 成員函式的功能,且更為簡單:
int a;
cout << "請輸入a:";
cin >> a;
cout << "十進位制:" << a << endl;
cout << "八進位制:" << oct << a << endl;
cout << "十六進製制:" << setbase(16) << a << endl;
cout << "十六進製制規格化:" << setiosflags(ios::showbase) << a << endl;
cout << dec << setw(10) << setfill('@') << a << endl;
double b = 12.308955555;
cout << "預設精度:" << b << endl;
cout << "顯示無效0:" << setiosflags(ios::showpoint) << b << endl;
cout << setprecision(10) << "調整精度為10:"<< b << endl;
vs2017除錯結果 :
可以發現:
①setiosflags() 可以設定格式狀態字,系統預設的對齊方式為右對齊;
②setw() 設定域寬只對靠近它的輸出有用;
③在測試精度時,使用的原資料是「12.3089555555」。在按預設精度輸出後,輸出:12.309。但這是 四捨五入+進製+捨棄無效0 得出的結果,所以
系統預設精度應該是「6」而不是「5」。
1、最常用的用法:cin >> (後跟變數名直接進行緩衝區讀取)
在使用字元陣列名來輸入字串的時候,在遇見空白字元時會直接結束讀取。
2、cin.get()
①char = cin.get(),cin.get(char)
從緩衝區內,讀取字元,可讀取空白和換行符;
遇到換行符結束,不會捨棄緩衝區的空格和換行符;
一般使用不接收返回值的函式,來捨棄不必要的空白字元。
※較難理解
詳解:輸入 「1空格」 進入緩衝區
st2先讀取1,st1再讀取換行
在加上格式操縱符 endl 於是會造成兩次換行
②cin.get(char ,length)
用來接收一行字元,長度為length-1(最後一位會放』\0』),可讀取空格。
3、cin.getline(char ,length,char)
從緩衝區讀取一行字元,長度為length-1(最後一位會放』\0』),可接收空格;
第三個引數是結束字元(在讀取到結束字元時,提前結束讀取):
一般只用前兩個引數,第三個預設為』\0』
4、getline(cin,str)
該函式為string檔案所定義,需包含 「string」 標頭檔案;
在讀取字串時可包含空格,遇到換行結束。
5、char *gets(char *buffer)
從緩衝區讀取字串,以換行結束(最後一位會放』\0』);
成功返回位址,錯誤返回 「null」,需加 「string」標頭檔案。
6、int getchar()
接收乙個字元,包含空格,以換行結束;
成功返回讀取值,失敗返回 『eof』,需加 「string」標頭檔案。
C I O流常用控制符
dec 置基數為10 相當於 d hex 置基數為16 相當於 x oct 置基數為8 相當於 o setfill c 設填充字元為c setprecision n 設顯示小數精度為n位 setw n 設域寬為n個字元 setiosflags ios fixed 固定的浮點顯示 setiosflag...
C I O流常用控制符
dec 置基數為10 相當於 d hex 置基數為16 相當於 x oct 置基數為8 相當於 o setfill a 設填充字元為a setprecision n 設顯示小數精度為n位 setw n 設域寬為n個字元 setiosflags ios fixed 固定的浮點顯示 setiosflag...
c IO之預定義格式控制
在c語言裡,我們可以通過函式printf和scanf來進行格式化控制。而在c 中仍然包含了前者,但還提供了以下兩種格式控制的方法 1 使用流成員函式進行格式控制 2 使用預定義操作符進行格式控制。下面我來一一介紹 1.流成員函式主要是指ios類 流基類 中的,分別有 1 設定狀態標誌流成員函式set...