C++ 从Qt资源加载Csv文件

C++ 从Qt资源加载Csv文件,c++,qt,qt-creator,C++,Qt,Qt Creator,我正在尝试读取已添加到项目资源中的csv文件。 然而,当我试图打开文件时,它失败了 std::ifstream csvFile; csvFile.open(fileName); 这就是我试图打开它的方式。资源中的其他文件正常(所有其他文件都是图像,并且它们加载和显示正确)。 我在QtCreator 4.0.2中使用Qt5.7 有什么提示吗?失败的原因是Qt资源不是真正的文件,每个处理文件的工具都可以打开这些文件。相反,添加到Qt项目资源中的文件内容是生成的可执行文件 好消息是Qt提供了一些功能

我正在尝试读取已添加到项目资源中的csv文件。 然而,当我试图打开文件时,它失败了

std::ifstream csvFile;
csvFile.open(fileName);
这就是我试图打开它的方式。资源中的其他文件正常(所有其他文件都是图像,并且它们加载和显示正确)。 我在QtCreator 4.0.2中使用Qt5.7


有什么提示吗?

失败的原因是Qt资源不是真正的文件,每个处理文件的工具都可以打开这些文件。相反,添加到Qt项目资源中的文件内容是生成的可执行文件

好消息是Qt提供了一些功能,让您可以像处理真实文件一样处理这些资源:

QString myResourceFile = ":/resources/file.csv";
QFile file(myResourceFile);
if (file.open(QIODevice::ReadOnly)) {
    QByteArray contents = file.readAll();
    // process file's contents
}
else {
    // Whoops, something went wrong, bad path to resource?
}

谢谢,试过了,但文件还是打不开。errorString()显示“未知错误”。仔细检查路径。还有什么吗?首先,看看
file.error()
返回什么,即发生了什么类型的错误。它返回0:-(另外,确保
.qrc
文件中的文件路径正确。您描述的症状似乎是这样的。例如,资源路径不正确,
QFile
根本无法正确报告。