readline — Qt: c ++: как читать & quot; .dat & quot; файл

У меня есть файл .dat, который содержит «1» и «-1» в виде последовательности в вертикальном представлении (т.е. каждый элемент находится в одной строке.).

Я пытаюсь прочитать файл следующим образом:

char buf[30];
QFile sequence("Sequences.dat");
sequence.open(QFile::ReadOnly);
for(int sym=0; sym<29; sym++){
char c = symbols[sym] = sequence.readLine(buf,sizeof(buf));
symbols[sym] = c;
}
sequence.close();

однако результат не похож на мою последовательность, как показано ниже:

введите описание изображения здесь

что я сделал не так?

0

Решение

Проверить readLine API doc: возвращаемое значение — это количество прочитанных байтов, а строка считывается в buf массив, который перезаписывается на каждой итерации. Обратите внимание, что первый символ проверяемого массива является '\0' (пустая строка), вероятно, потому что последняя строка вашего файла пуста.

2

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

Других решений пока нет …

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