Задать вопрос
@undeadter

Как правильно из zip архива считать текстовый файл с помощью PHYSFS?

PHYSFS_init(NULL);
    PHYSFS_addToSearchPath(filename.toLatin1(), 1);

    char* myBuf;
    PHYSFS_File* myfile;

    myfile = PHYSFS_openRead("readme.txt");
    if (myfile)
    {
        myBuf = new char[PHYSFS_fileLength(myfile)];
        int length_read = PHYSFS_read(myfile, myBuf, 1, PHYSFS_fileLength(myfile));
        PHYSFS_close(myfile);
        qInfo(myBuf);
    }


Хотя файл содержит одну строку "sdsd", с каждым чтением я получаю новый результат:
sdsd?hq,&?
sdsd8n???,
sdsd?iL?^?{
sdsd`ri?oE

Что я делаю не так?
  • Вопрос задан
  • 331 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Нетология
    Специалист по информационной безопасности + нейросети
    12 месяцев
    Далее
  • Компьютерная академия «TOP»
    Учебная программа “Разработка программного обеспечения”
    30 месяцев
    Далее
Решения вопроса 1
@Mercury13
Программист на «си с крестами» и не только
Нужно закрыть Си-строку.
int length = PHYSFS_fileLength(myfile)
myBuf = new char[length + 1];
int length_read = PHYSFS_read(myfile, myBuf, 1, length);
myBuf[length_read] = 0;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы