C 基礎回顧2

2021-08-19 19:25:37 字數 1445 閱讀 4550

istream(輸入流)型別,提供輸入操作;

ostream(輸出流)型別,提供輸出操作;

cin:乙個istream物件,從標準輸入讀取資料;

cout:乙個ostream物件,從標準輸出讀取資料;

cerr:乙個ostream物件,通常用於輸出程式錯誤訊息,寫入到標準錯誤;

「>>」:運算子,用來從乙個istream物件讀取資料;

「<<」:運算子,用來從乙個ostream物件讀取資料;

getline函式,從乙個給定的istream物件中讀取一行資料,存入乙個給定的string物件中。

ofstream out1, out2;

out1 = out2; //錯誤:不能對流物件賦值

ofstream print(ofstream);//錯誤:不能初始化ofstream引數

out2 = print(out2); //錯誤:不能拷貝流物件

由於不能拷貝 io物件,因此我們也不能將形參或返回型別設定為流型別,進行io操作的函式通常以 引用方式傳遞和返回流,讀寫乙個io物件會改變其狀態,因此傳遞和返回的引用不能是const的。

io庫條件狀態

strm:iostate:strm是一種io型別;

strm:badbit:用來指出流已崩潰;

strm:failbit:用來指出io操作失敗;

strm:eofbit:用來指出檔案已結束;

strm:goodbit:用來指出流未處於錯誤狀態;

s.eof():若流s的eofbit置位,則返回true;

s.fail():若流的failbit或badbit置位,則返回true;

s.bad():若流的badbit置位,則返回true;

s.good():若s處於有效狀態,則返回true;

s.clear():將流s中所有的條件狀態狀態位復位,將流的狀態設定為有效,返回void;

s.clear(flags):根據給定的flags標誌位,將流s中對應條件狀態位復位。

s.setstate(flags):根據給定的flags標誌位,將流s中對應條件狀態位置位。

s.rdstate():返回流s的當前條件狀態。

cout

<< "hi"

<< endl; //輸出hi和乙個換行,然後重新整理緩衝區

cout

<< "hi"

<< flush; //輸出hi,然後重新整理緩衝區,不附加任何額外的字元

cout

<< "hi"

<< ends; //輸出hi和乙個空字元,然後重新整理緩衝區

警告:如果程式崩潰,輸出緩衝區不會被重新整理

這點在根據日誌檢視bug時深有體會,有時程式崩潰了,但是它所輸出的資料可能停留在輸出緩衝區中等待列印。

回顧c 基礎(2)

我們知道在c 中,記憶體有五個區 堆區,棧區,自由儲存區,全域性 靜態儲存區和常量儲存區。棧區 就是通常由編譯器在需要的時候進行分配,在不需要的時候自動清除的區域,比如區域性變數,函式引數。堆區 就是那些由new出來的分配的記憶體塊,它們的釋放編譯器不用管,是由我們的應用程式去控制,一般乙個new就...

c語言基礎回顧 2

注意 字元型和整數型關係非常密切,可把字元型看做一種特殊的整型 二 常量和變數 整型常量 1.八進位制整常數八進位制整常數必須以0開頭,即以0作為八進位制數的字首。數碼取值為0 7。八進位制數通常是無符號數。2 十六進製制整常數的字首為0x或0x。其數碼取值為0 9,a f或a f。3 十進位制整常...

基礎回顧 2

string 字串常量 stringbuffer 字串變數 執行緒安全 stringbuilder 字串變數 非執行緒安全 string 型別和 stringbuffer 型別的主要效能區別其實在於 string 是不可變的物件,因此在每次對 string 型別進行改變的時候其實都等同於生成了乙個新...