std::stringcontent; content.assign(std::istreambuf_iterator<char>(file), std::istreambuf_iterator<char>()); 注:另外有的程序员使用 ifstream 读取文件内容,然后直接赋值给std::string对象,肯定是错误的。因为:读取的char*类型赋值给string时,默认遇到 \0 就会结束,会丢弃后面的字符。
复制 #include<fstream>#include<iostream>#include<iterator>using namespace std;intmain(){ifstreamin("test.cpp");istreambuf_iterator<char>isb(in),end;ostreambuf_iterator<char>osb(cout);while(isb!=end)*osb++=*isb++;cout<<endl;return0;} 这段代码的意思是把test.cpp中的内容读出来并打印到...
ostreambuf_iterator提供的字符的类型。 复制 typedef CharType char_type; 备注 类型作为模板参数的 CharType的同义词。 示例 复制 // istreambuf_iterator_char_type.cpp // compile with: /EHsc #include <iterator> #include <vector> #include <iostream> #include <algorithm> int main( ) { using...
构造函数:可以使用输入流对象作为参数来构造std::istreambuf_iterator对象。例如:std::istreambuf_iterator<char> it(std::cin); 解引用操作符:可以使用*操作符来获取当前迭代器位置的字符。例如:char c = *it; 递增操作符:可以使用++操作符将迭代器位置向前移动一个字符。例如:++it; 比较操作符:可...
第一个构造函数初始化。_Strbuf的进入流缓冲区指针。第二个构造函数初始化。_Istr的进入流缓冲区指针。rdbuf,最终然后尝试提取和存储类型CharType对象。 示例 // istreambuf_iterator_istreambuf_iterator.cpp // compile with: /EHsc #include <iterator> #include <vector> #include <algorithm> #include <iost...
ifstreaminputfile("xxxx");stringfileDate((istream_iterator<char>(inputfile)),istream_iterator<char>()); 在流输入的时候遇到空格就跳过,也就是不会读入空格字符。 2.原因: istream_iterator使用operator>>来完成这个读入操作的,然而operator>>会跳过空白字符。
istreambuf_iterator 使用 std::stringstr; file.seekg(0, std::ios::end); str.reserve(file.tellg()); file.seekg(0, std::ios::beg); str.assign((std::istreambuf_iterator<char>(file)), std::istreambuf_iterator<char>());
提供istreambuf_iterator的資料型別。複製 typedef basic_istream<CharType, Traits> istream_type; 備註這個型別是 basic_istream的<CharType, Traits>一個同義資料表。範例的範例參閱 istreambuf_iterator 宣告和使用 istream_type。需求標題: <iterator>...
std::vector<char> data((std::istreambuf_iterator<char>(ifs)), std::istreambuf_iterator<char>()); 注意:这里使用的是stream buffer的迭代器,而不是stream迭代器。因为这里的以binary把数据保存到buffer,若用stream,则以文本格式。 2. 把buffer存入stream ...
template<class charT, class traits = char_traits<charT> > class istreambuf_iterator : public input_iterator { public: typedef charT char_type; typedef typename traits::int_type int_type; typedef traits traits_type; typedef basic_streambuf<charT, traits> streambuf_type; typedef basic_istream<...