C++ 輸入輸出流之字串流
阿新 • • 發佈:2019-01-23
- 字串流介紹
- 字串流以記憶體中使用者定義的字元陣列(字串)作為輸入輸出物件。
- 字串流也有緩衝區,當緩衝區滿了(或遇到換行符),流緩衝的資料一起存入字元陣列。
- 標頭檔案<strstream>
- 1. 建立輸出字串流物件
- ostrestream的建構函式:
- ostrestream::ostrstream(char *buffer, int n, int mode = ios::out);
- buffer指字串陣列首元素的指標
- n是流緩衝區的大小
- iost::out是預設值
- 建立輸出字串流物件與字元陣列的關聯:
- ostrstream strout(cStr1, 20)
- ostrestream的建構函式:
- 2. 建立輸入字串流物件
- istrstream的建構函式:
- istrstream::istrstream(char *buffer)
- istrstream::istrstream(char *buffer, int n)
- buffer是指向字元陣列首元素的指標
- n是緩衝區的大小
- 建立輸入字串流物件與字元陣列的關聯
- istrstream strin(cStr2); // 將cStr2字元陣列中的全部陣列作為輸入字串流的內容
- istrstream strin(cStr2); // 將cStr2字元陣列中的全部陣列作為輸入字串流的內容
- istrstream的建構函式:
- 3. 建立輸入輸出字串流物件
- strstream的建構函式
- strstream::strstream(char *buffer, int n, int mode)
- strstream::strstream(char *buffer, int n, int mode)
- 建立輸入輸出流物件魚字串流流的關聯
- strstream strio(cStr3, sizeof(cStr3), ios::in|ios::out);
- 以字元陣列cStr3為輸入輸出物件,緩衝區大小與陣列cStr3相同
- strstream的建構函式
- 舉例:
#include <strstream> #include <iostream> using namespace std; int main() { char cStr[50] = "12 34 65 -23 -32 33 61 99 321 32"; int nArray[10]; cout << "Old cStr: " << cStr << endl; // 以字串cStr作為輸入流,建立strin與cStr的關聯,緩衝區大小為字串cStr的大小 istrstream strin(cStr, sizeof(cStr)); int i, temp; for (i = 0; i < 10; i++) strin >> nArray[i]; // 輸出讀入的陣列 cout << "nArray: "; for (i = 0; i < 10; i++) cout << nArray[i] << " "; cout << endl; for (int i = 0; i < 5; i++) // 陣列旋轉 { temp = nArray[i]; nArray[i] = nArray[9 - i];; nArray[9-i] = temp; } ostrstream strout(cStr, sizeof(cStr)); for (i = 0; i < 10; i++) strout << nArray[i] << " "; strout << endl; // 加入'\0' cout << "New cStr: " << cStr << endl; // 輸出最新的cStr return 0; }