我有一个可以读取istringstream
并对其进行一些操作的函数,所以...我正尝试使用fstream
读取文件并将fstream
对象转换为istringstream
,以便将其传递给我的函数。我不知道该怎么做。任何帮助将非常感激。我仍然还是个初学者,所以请尽量保持简单。
string inputFile(argv[1]);
ifstream inFile(inputFile.c_str());
istringstream is;
is >> inFile.rdbuf(); //*******This is wrong and is what I'm having trouble with
function(is);
最佳答案
您想要的是std::istream_iterator
:
std::string myString ( std::istream_iterator(inputFile) , std::istream_iterator() ) ;
std::istringstream is ( myString ) ;
这将通过使用一个开始迭代器(
std::istream_iterator(inputFile)
)和一个结束迭代器(std::istream_iterator()
)创建一个包含inputFile内容的字符串。然后从该字符串创建一个istringstream。这解决了您眼前的问题,但是几乎可以肯定,有一种更好的方法可以完成您要尝试做的事情。例如:
istream
而不是istringstream
(因为这样就不必复制它)。 istringstream
。 关于c++ - 如何将ifstream转换为istringstream,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35422961/