大佬教程收集整理的这篇文章主要介绍了C++ STL流缓冲区迭代器(streambuf_iterator),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<iterator>
头文件,并位于 std 命名空间中。因此,在创建并使用该类型迭代器之前,程序中应包含如下代码:#include <iterator> using namespace std;创建输入流缓冲区迭代器的常用方式,有以下 2 种:
std::istreambuf_iterator<char> end_in;其中,<> 尖括号中用于指定从流缓冲区中读取的字符类型。
std::istreambuf_iterator<char> in{ std::cin };除此之外,还可以传入流缓冲区的地址,比如:
std::istreambuf_iterator<char> in {std::cin.rdbuf()};其中,rdbuf() 函数的功能是获取指定流缓冲区的地址。
#include <iostream> // std::cin,std::cout #include <iterator> // std::istreambuf_iterator #include <String> // std::string using namespace std; int main() { //创建结束流缓冲区迭代器 istreambuf_iterator<char> eos; //创建一个从输入缓冲区读取字符元素的迭代器 istreambuf_iterator<char> iit(cin); String myString; cout << "向缓冲区输入元素:\n"; //不断从缓冲区读取数据,直到读取到 EOF 流结束符 while (iit != eos) { myString += *iit++; } cout << "String:" << myString; return 0; }程序执行结果为:
向缓冲区输入元素:
abc ↙
^Z ↙
String:
abc
<iterator>
头文件,并位于 std 命名空间中,因此使用该类型迭代器,程序中需要包含以下代码:
#include <iterator> using namespace std;
std::ostreambuf_iterator<char> out_it (std::cout);同样,尖括号 <> 中用于指定要写入字符的类型,可以是 char、wchar_t、char16_t 以及 char32_t 等。
std::ostreambuf_iterator<char> out_it (std::cout.rdbuf());
#include <iostream> // std::cin,std::cout #include <iterator> // std::ostreambuf_iterator #include <String> // std::string #include <algorithm> // std::copy int main() { //创建一个和输出流缓冲区相关联的迭代器 std::ostreambuf_iterator<char> out_it(std::cout); // stdout iterator //向输出流缓冲区中写入字符元素 *out_it = 'S'; *out_it = 'T'; *out_it = 'L'; //和 copy() 函数连用 std::string myString("\nhttp://c.biancheng.net/stl/"); //将 myString 中的字符串全部写入到输出流缓冲区中 std::copy(myString.begin(),myString.end(),out_it); return 0; }程序执行结果为:
STL
http://c.biancheng.net/stl/
以上是大佬教程为你收集整理的C++ STL流缓冲区迭代器(streambuf_iterator)全部内容,希望文章能够帮你解决C++ STL流缓冲区迭代器(streambuf_iterator)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。