gpt4 book ai didi

c++ - QFile 打不开文件

转载 作者:搜寻专家 更新时间:2023-10-30 23:58:48 25 4
gpt4 key购买 nike

QLabel* codeLabel = new Qlabel;

QFile file("C:\index.txt");
file.open(stderr, QIODevice::WriteOnly);
QByteArray data;
data = file.readAll();

codeLabel->setText("test"+QString(data));
file.close();

那么QLabel中就只有“test”了。请帮忙

最佳答案

除了您应该在 C 风格字符串 (c:\\index.txt) 中转义反斜杠这一事实之外,您还遇到了以下序列的问题:

//                           vvvvvvvvv
file.open(stderr, QIODevice::WriteOnly);
:
data = file.readAll();
// ^^^^

当您以只写方式打开文件,然后尝试读取它时,您认为究竟会发生什么?您需要打开它进行阅读,例如使用 QIODevice::ReadOnlyQIODevice::ReadWrite

最重要的是,您应该通过给您一个返回码来检查所有失败函数的返回码。您目前不知道 file.open() 是否有效。

我也不认为您应该打开 stderr(它实际上是一个输出“设备”)来进行输入。您几乎肯定永远不会在该文件描述符上 获得任何实际数据,这可能就是您的输入为空的原因。

您需要退后一步,问问您想要实现什么。例如,您是否试图捕获您的进程发送到标准错误的所有内容?如果是这样,它不会那样工作。

如果您只是想读取 index.txt 文件,那么您使用了错误的重载。完全删除 stderr 参数:

file.open (QIODevice::ReadOnly);

如果这是您正在尝试做的其他,请将其添加到问题中。

关于c++ - QFile 打不开文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18893718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com