QFile не открывает файл

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.
Помогите, пожалуйста

2

Решение

Помимо того, что вы должны избегать обратной косой черты в строках в стиле C (c:\\index.txt), у вас есть проблема со следующей последовательностью:

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

Что именно ты сделал считать должно было случиться, когда вы открыли файл только для записи, а затем попытались его прочитать? Вам нужно открыть его для чтения, например, с QIODevice::ReadOnly или же QIODevice::ReadWrite,

Кроме того, вы должны проверить код возврата всех функций, которые не работают, предоставив вам код возврата. Вы в настоящее время понятия не имеете, является ли file.open() работал или нет.

Я также не уверен, что вы должны открывать stderr (что на самом деле является выходным «устройством») для ввода. Вы почти наверняка никогда не получите никаких фактических данных в в этом файловом дескрипторе, возможно, поэтому ваш ввод пуст.

Вы должны сделать шаг назад и спросить какие ты пытаешься заболеть. Например, вы пытаетесь захватить все, что ваш процесс отправляет на стандартную ошибку? Если так, это не сработает.

Если вы просто пытаетесь прочитать index.txt файл, вы используете неправильную перегрузку. Удалить stderr параметр в целом:

file.open (QIODevice::ReadOnly);

Если это что-то еще Вы пытаетесь сделать, добавьте это к вопросу.

3

Другие решения

file.open(stderr, QIODevice::WriteOnly);

это снова закрывает файл и снова открывает поток stderr в режиме только записи

Вы хотите изменить это на

file.open(QIODevice::ReadOnly);
2

QFile file("C:\index.txt");

Здесь вы пытаетесь открыть файл с именем: C:index.txt так как '\i' преобразуется в i, Вы хотите удвоить обратную косую черту:

QFile file("C:\\index.txt");
2

Потому что ты читать из файла, который вы открыли только для записи.

0
По вопросам рекламы [email protected]