使用流迭代器操作cin,cout 實現輸出輸出

2021-07-06 11:04:30 字數 1477 閱讀 5094

istream_iterator 用來讀取輸入流,ostream_iterator 用於寫輸出流;

其建構函式如下:

istream_iteratorin(strm)    //從輸入流strm 建立讀取t型別物件的istream_iterator 物件;

istream_iteratorin;      istream_iterator 物件的超出末端迭代器;

ostream_iteratorout(strm)    //建立將t型別物件寫道strm流的ostream_iterator 物件;

osteam_iteratorout(strm,delim)   //建立將t型別物件寫入strm流的ostream_iterator 物件,在寫入過程中,以delim 為元素分隔符,delim 是c風格字串;

eg1 從標準輸入讀取一系列整數,存放在乙個vector 容器中,再輸出該容器的內容.

int main(int argc, char* argv)

return 0;

}

eg2.  讀取乙個檔案的內容,使用copy 演算法將檔案內容輸出到標準輸出

int main(int argc, char* argv)

eg3.

使用istream_iterator 物件從標準輸入讀入一系列整數,使用ostream_iterator 物件將其中的奇數寫到乙個檔案,偶數寫到另乙個檔案

#include #include #include #include using namespace std;

int main(int argc,char* argv)

); copy_if(in_iter,end_iter,out2,(int i));

return 0;

}

ps. 目前上面eg3的程式還有bug ,copy_if 連著兩次呼叫,第二次呼叫沒有起到期望的效果

上面聯絡兩次呼叫copy_if() 出現問題,其原因是:

解決辦法是先將標準輸入的內容儲存在容器中:

istream_iteratorin_iter(cin),end_iter;

vectorivec(in_iter,end_iter);

fstream file1,file2;

file1.open("1.txt",ios::out);

file2.open("2.txt",ios::out);

ostream_iteratorout1(file1,"\n");

ostream_iteratorout2(file2,"\n");

copy_if(ivec.begin(),ivec.end(),out1,(int i));

copy_if(ivec.begin(),ivec.end(),out2,(int i));

流迭代器的使用

10.29 編寫程式,使用流迭代器讀取乙個文字檔案,存入乙個vector中的string裡。include include include include include using namespace std intmain 10.30 使用流迭代器 sort和copy從標準輸入讀取乙個整數序列,...

io流迭代器

建立乙個流迭代器的時候必須指定迭代器將要讀寫的物件型別。istream iterator istream iteratorin iter cin 從cin讀取int istream iteratoreof 尾後迭代器通過流迭代器讀入資料的例子 while in iter eof 注意 運算子的優先順...

C STL 流迭代器

流迭代器是一種迭代器介面卡。istream iterator用於讀取輸入流,ostream iterator用於寫輸出流。這些迭代器將它們所對應的流視為特定型別的元素序列。使用流迭代器時,可以用泛型演算法從流物件中讀資料或將資料寫入到流物件中。流迭代器的建構函式如下 流迭代器的基本操作如下 1 流迭...