c++学习笔记之输入/输出流
生活随笔
收集整理的這篇文章主要介紹了
c++学习笔记之输入/输出流
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、wchar_t
區(qū)別于char,用于存儲unicode字符。而char是單字節(jié),只能存儲ascii字符。 2、cin/cout/cerr/clog
cerr無緩沖錯(cuò)誤流????????? clog有緩沖錯(cuò)誤流 3、輸出cout
(1)要打印一個(gè)表示字符串的char *的值(即第一個(gè)字符的內(nèi)存地址),“<<”直接打印不行,因?yàn)橐呀?jīng)被重載為將char *數(shù)據(jù)類型作為字符串來打印。
????????解決方法是將char *強(qiáng)轉(zhuǎn)為void *類型(c++中輸出地址,都要這樣轉(zhuǎn))
(2)put函數(shù)用于輸出字符,可以聯(lián)級使用,如:cout.put('A').put('\n') 4、輸入cin
eof函數(shù):返回是否已經(jīng)到流結(jié)尾
get函數(shù):從流輸入一個(gè)字符并作為返回值返回,在流結(jié)尾會返回EOF值。有三個(gè)版本:無參數(shù),一個(gè)字符數(shù)組參數(shù),三個(gè)參數(shù)。
???????????????? 三參數(shù)版本取多個(gè)字符放入字符數(shù)組中。參數(shù)包括一個(gè)字符數(shù)組,一個(gè)數(shù)組長度和一個(gè)分隔符(默認(rèn)'\n')。分隔符不放入字符數(shù)組中,但留在輸入流中。
getline函數(shù):與get的三參數(shù)版本類似,參數(shù)包括一個(gè)字符數(shù)組和一個(gè)數(shù)組長度。不同的是將分隔符從流中提取出來丟棄。
ignore函數(shù):讀取并丟棄一定數(shù)量字符(默認(rèn)一個(gè)),遇到指定分割符停止(默認(rèn)EOF)
putback函數(shù):將先前使用get函數(shù)獲取的字符再放回流中。
peek函數(shù):返回輸入流下一字符,但不從流中移除。
(1)c++有類型安全的I/O,如遇到意料之外的數(shù)據(jù)類型,各種相應(yīng)的錯(cuò)誤位會被設(shè)置。
(2)非格式化的I/O函數(shù)有read、write和gcount。gcount返回最近一次輸入操作讀取的字符數(shù)。 5、流操作符
(1)整型流基數(shù):十進(jìn)制dex,八進(jìn)制oct,十六進(jìn)制hex,自定義進(jìn)制setbase。如:cout<<setbase(6)<<132
(2)浮點(diǎn)精度:precision和setprecision。如:
cout.precision(2);
cout<<1.675
或
cout<<setprecision(2)<<1.675;
(3)域?qū)?#xff1a;width和setw。不是粘性的,當(dāng)輸出域?qū)挻笥谥付ㄓ驅(qū)挷唤囟?/span>,完整打印。使用同上。
(4)自定義輸出流操作符:返回類型和參數(shù)都必須是ostream&類型。如:
ostream& endLine(ostream& output){
???? return output<<'\n'<<flash;
}
使用:cout<<'a'<<endLine<<'b' 6、流的格式狀態(tài)和流操作符
(1)尾數(shù)零和小數(shù)點(diǎn):showpoint
(2)對齊:left、right、internal??????? internal符號左對齊,數(shù)字右對齊,如“+??? 13”、“0x?? 13”。
(3)內(nèi)容填充:fill、setfill
(4)整型流基數(shù):showbase、noshowbase? ?? 八進(jìn)制以0開頭如0132,十六進(jìn)制以0x開頭如0x132
(5)科學(xué)計(jì)數(shù)法和定點(diǎn)小數(shù):scientific浮點(diǎn)數(shù)以科學(xué)計(jì)數(shù)法格式輸出;fixed浮點(diǎn)數(shù)以指定小數(shù)位數(shù)顯示。
(6)大小寫:uppercase和nouppercase
(7)布爾格式:boolalpha以true和fasle顯示;noboolalpha以1和0顯示。(c++中bool默認(rèn)顯示1和0)
(8)設(shè)置重置格式狀態(tài):flag——無參函數(shù)返回當(dāng)前格式(fmtflags類型);單參(fmtflags類型)函數(shù)將格式重置會參數(shù)的狀態(tài)
(9)強(qiáng)制輸出加號(正號):showpos和noshowpos 7、流的錯(cuò)誤狀態(tài)
rdstate()返回流的錯(cuò)誤狀態(tài)
clear()將流狀態(tài)重置為goodbit位
clear(ios::failbit)為流設(shè)置failbit位
注意:如果badbit或failbit被設(shè)置,或都被設(shè)置,則basic_ios成員函數(shù)operator!返回true,operator void*則返回false。
8、輸出流連接到輸入流
連接:cin.tie(&cout)????? 解除連接:inputstream.tie(0)
cerr無緩沖錯(cuò)誤流????????? clog有緩沖錯(cuò)誤流 3、輸出cout
(1)要打印一個(gè)表示字符串的char *的值(即第一個(gè)字符的內(nèi)存地址),“<<”直接打印不行,因?yàn)橐呀?jīng)被重載為將char *數(shù)據(jù)類型作為字符串來打印。
????????解決方法是將char *強(qiáng)轉(zhuǎn)為void *類型(c++中輸出地址,都要這樣轉(zhuǎn))
(2)put函數(shù)用于輸出字符,可以聯(lián)級使用,如:cout.put('A').put('\n') 4、輸入cin
eof函數(shù):返回是否已經(jīng)到流結(jié)尾
get函數(shù):從流輸入一個(gè)字符并作為返回值返回,在流結(jié)尾會返回EOF值。有三個(gè)版本:無參數(shù),一個(gè)字符數(shù)組參數(shù),三個(gè)參數(shù)。
???????????????? 三參數(shù)版本取多個(gè)字符放入字符數(shù)組中。參數(shù)包括一個(gè)字符數(shù)組,一個(gè)數(shù)組長度和一個(gè)分隔符(默認(rèn)'\n')。分隔符不放入字符數(shù)組中,但留在輸入流中。
getline函數(shù):與get的三參數(shù)版本類似,參數(shù)包括一個(gè)字符數(shù)組和一個(gè)數(shù)組長度。不同的是將分隔符從流中提取出來丟棄。
ignore函數(shù):讀取并丟棄一定數(shù)量字符(默認(rèn)一個(gè)),遇到指定分割符停止(默認(rèn)EOF)
putback函數(shù):將先前使用get函數(shù)獲取的字符再放回流中。
peek函數(shù):返回輸入流下一字符,但不從流中移除。
(1)c++有類型安全的I/O,如遇到意料之外的數(shù)據(jù)類型,各種相應(yīng)的錯(cuò)誤位會被設(shè)置。
(2)非格式化的I/O函數(shù)有read、write和gcount。gcount返回最近一次輸入操作讀取的字符數(shù)。 5、流操作符
(1)整型流基數(shù):十進(jìn)制dex,八進(jìn)制oct,十六進(jìn)制hex,自定義進(jìn)制setbase。如:cout<<setbase(6)<<132
(2)浮點(diǎn)精度:precision和setprecision。如:
cout.precision(2);
cout<<1.675
或
cout<<setprecision(2)<<1.675;
(3)域?qū)?#xff1a;width和setw。不是粘性的,當(dāng)輸出域?qū)挻笥谥付ㄓ驅(qū)挷唤囟?/span>,完整打印。使用同上。
(4)自定義輸出流操作符:返回類型和參數(shù)都必須是ostream&類型。如:
ostream& endLine(ostream& output){
???? return output<<'\n'<<flash;
}
使用:cout<<'a'<<endLine<<'b' 6、流的格式狀態(tài)和流操作符
(1)尾數(shù)零和小數(shù)點(diǎn):showpoint
(2)對齊:left、right、internal??????? internal符號左對齊,數(shù)字右對齊,如“+??? 13”、“0x?? 13”。
(3)內(nèi)容填充:fill、setfill
(4)整型流基數(shù):showbase、noshowbase? ?? 八進(jìn)制以0開頭如0132,十六進(jìn)制以0x開頭如0x132
(5)科學(xué)計(jì)數(shù)法和定點(diǎn)小數(shù):scientific浮點(diǎn)數(shù)以科學(xué)計(jì)數(shù)法格式輸出;fixed浮點(diǎn)數(shù)以指定小數(shù)位數(shù)顯示。
(6)大小寫:uppercase和nouppercase
(7)布爾格式:boolalpha以true和fasle顯示;noboolalpha以1和0顯示。(c++中bool默認(rèn)顯示1和0)
(8)設(shè)置重置格式狀態(tài):flag——無參函數(shù)返回當(dāng)前格式(fmtflags類型);單參(fmtflags類型)函數(shù)將格式重置會參數(shù)的狀態(tài)
(9)強(qiáng)制輸出加號(正號):showpos和noshowpos 7、流的錯(cuò)誤狀態(tài)
| 錯(cuò)誤位 | 獲取狀態(tài)函數(shù) | 設(shè)置時(shí)機(jī) |
| eofbit | eof() | 輸入流遇到文件尾 |
| failbit | fail() | 流中發(fā)生錯(cuò)誤(通常可恢復(fù)) |
| badbit | bad() | 數(shù)據(jù)丟失錯(cuò)誤(不可修復(fù)) |
| goodbit | good() | 如果上面三個(gè)都沒設(shè)置 |
?
超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生總結(jié)
以上是生活随笔為你收集整理的c++学习笔记之输入/输出流的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c++学习笔记之模板
- 下一篇: c++学习笔记之异常