要将整个istream打印到标准输出和字符串,您可以使用以下方法:
std::ostringstream
和std::getline
函数。#include<iostream>
#include <sstream>
#include<string>
int main() {
std::istringstream input("这是一个测试字符串\n这是第二行");
std::ostringstream output;
std::string line;
while (std::getline(input, line)) {
output<< line<< std::endl;
std::cout<< line<< std::endl;
}
std::string result = output.str();
return 0;
}
std::accumulate
和std::istreambuf_iterator
。#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
int main() {
std::istringstream input("这是一个测试字符串\n这是第二行");
std::string result = std::accumulate(std::istreambuf_iterator<char>(input),
std::istreambuf_iterator<char>(),
std::string());
std::cout<< result<< std::endl;
return 0;
}
这两种方法都可以将istream中的所有内容打印到标准输出和字符串中。第一种方法使用std::ostringstream
和std::getline
函数,逐行读取istream并将其添加到ostringstream中,同时也输出到标准输出。第二种方法使用std::accumulate
和std::istreambuf_iterator
,将istream中的所有内容累加到一个字符串中,并输出到标准输出。
领取专属 10元无门槛券
手把手带您无忧上云