關於字串流的學習 c

2021-06-16 07:59:11 字數 1784 閱讀 5785

/* 字串流

在字元陣列中可以存放字元,也可以存放整數、浮點數以及其他型別的資料。在向字元陣列存入資料之前,要先將資料從二進位制形式轉換為ascii**,然後存放在緩衝區,再從緩衝區送到字元陣列。從字元陣列讀資料時,先將字元陣列中的資料送到緩衝區,在賦給變數前要先將ascii**轉換為二進位制形式。總之,流緩衝區中的資料格式與字元陣列相同。

檔案流類有ifstream,ofstream和fstream,而字串流類有istrstream,ostrstream和strstream。檔案流類和字串流類都是ostream,istream和iostream類的派生類,因此對它們的操作方法是基本相同的。向記憶體中的乙個字元陣列寫資料就如同向檔案寫資料一樣,但有點不同:

(1) 輸出時資料不是流向外存檔案,而是流向記憶體中的乙個儲存空間。輸入時從記憶體中的儲存空間讀取資料。

(2) 字串流物件關聯的不是檔案,而是記憶體中的乙個字元陣列,因此不需要開啟和關閉檔案。

(3) 每個檔案的最後都有乙個檔案結束符,表示檔案的結束。而字串流所關聯的字元陣列中沒有相應的結束標誌,使用者要指定乙個特殊字元作為結束符,在向字元陣列寫入全部資料後要寫入此字元。

字串流類沒有open成員函式,因此要在建立字串流物件時通過給定引數來確立字串流與字元陣列的關聯。即通過呼叫建構函式來解決此問題。建立字串流物件的方法與含義如下:

1. 建立輸出字串流物件

ostrstream類提供的建構函式的原型為

ostrstream::ostrstream(char *buffer,int n,int mode=ios::out);

buffer是指向字元陣列首元素的指標,n為指定的流緩衝區的大小(一般選與字元陣列的大小相同,也可以不同),第個引數是可選的,預設為ios::out方式。可以用以下語句建立輸出字串流物件並與字元陣列建立關聯:

ostrstream strout(ch1,20);

作用是建立輸出字串流物件strout,並使strout與字元陣列ch1關聯(通過字串流將資料輸出到字元陣列ch1),流緩衝區大小為。

2. 建立輸入字串流物件

istrstream類提供了兩個帶參的建構函式,原型為

istrstream::istrstream(char *buffer);

istrstream::istrstream(char *buffer,int n);

buffer是指向字元陣列首元素的指標,用它來初始化流物件(使流物件與字元陣列建立關聯)。可以用以下語句建立輸入字串流物件:

istrstream strin(ch2);

作用是建立輸入字串流物件strin,將字元陣列ch2中的全部資料作為輸入字串流的內容。

istrstream strin(ch2,20);

流緩衝區大小為,因此只將字元陣列ch2中的前個字元作為輸入字串流的內容。

3. 建立輸入輸出字串流物件

strstream類提供的建構函式的原型為

strstream::strstream(char *buffer,int n,int mode);

可以用以下語句建立輸入輸出字串流物件:

strstream strio(ch3,sizeof(ch3),ios::in|ios::out);

作用是建立輸入輸出字串流物件,以字元陣列ch3為輸入輸出物件,流緩衝區大小與陣列ch3相同。

以上個字串流類是在標頭檔案strstream中定義的,因此程式中在用到istrstream, ostrstream和strstream類時應包含標頭檔案strstream(在gcc中,用標頭檔案strstream)。

*/

關於字串流的學習 c

字串流 在字元陣列中可以存放字元,也可以存放整數 浮點數以及其他型別的資料。在向字元陣列存入資料之前,要先將資料從二進位制形式轉換為ascii 然後存放在緩衝區,再從緩衝區送到字元陣列。從字元陣列讀資料時,先將字元陣列中的資料送到緩衝區,在賦給變數前要先將ascii 轉換為二進位制形式。總之,流緩衝...

C 學習50 對字串流的讀寫

檔案流是以外存檔案為輸入輸出物件的資料流,字串流不是以外存檔案為輸入輸出的物件,而以記憶體中使用者定義的字元陣列 字串 為輸入輸出的物件,即將資料輸出到記憶體中的字元陣列,或者從字元陣列 字串 將資料讀入。字串流也稱為記憶體流。字串流也有相應的緩衝區,開始時流緩衝區是空的。如果向字元陣列存入資料,隨...

C 檔案流 字串流

include include include include include include using namespace std ifstream in void except catch int main char a,b string str,word,str1,str2 sssssss ...