Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将QTextStream转换为std::stringstream_C++_Qt_Stringstream_Qt5.4_Qtextstream - Fatal编程技术网

C++ 将QTextStream转换为std::stringstream

C++ 将QTextStream转换为std::stringstream,c++,qt,stringstream,qt5.4,qtextstream,C++,Qt,Stringstream,Qt5.4,Qtextstream,我在.qrc文件中嵌入了一些文本文件。但是,我的后端项目不是基于Qt的,在Qt前端项目中,有几次我必须调用a::read(std::string const&filePath)-类似函数,它们利用std::ifstream读取文件。当然,std::ifstream无法找到存储在Qt资源系统中的文件,所以我开始考虑转换 使用std::stringstream是我脑海中浮现的第一件事: std::istringstream iss(QTextStream(&file).readAll().t

我在.qrc文件中嵌入了一些文本文件。但是,我的后端项目不是基于Qt的,在Qt前端项目中,有几次我必须调用
a::read(std::string const&filePath)
-类似函数,它们利用
std::ifstream
读取文件。当然,
std::ifstream
无法找到存储在Qt资源系统中的文件,所以我开始考虑转换

使用
std::stringstream
是我脑海中浮现的第一件事:

std::istringstream iss(QTextStream(&file).readAll().toStdString());
// I didn't find any conversion functions in QTextStream
但我希望有更好的。(我不需要保留unicode。)
我将接受更接近问题根源的解决方案—qrc。

您的文件有多大?你能一次把整篇课文记住吗
std::string content=QTextStream(&file).readAll().toStdString()
就像一个简单的方法。@Simon Warta你是说预加载吗?这不是问题所在。问题涉及使用标准流从Qt资源系统读取文件。但为什么需要使用标准流?为什么从QRC URL到文件内容的方式很重要?@Simon Warta如前所述,后端项目不使用Qt,加载文件的API是函数,采用filepath。因此,我重载了这些函数以获取
std::istringstream
s
std::istringstream
可以用
QTextStream
读取的数据填充。参数也可以是
std::string
,但它最终将构造
std::istringstrem
,因为我需要读取格式化文本。那么您发布的代码正是您需要的
iss
是包含文件内容副本的std::istringstream。现在您可以读取
iss