Задать вопрос
@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

Что я делаю не так?
  • Вопрос задан
  • 330 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 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;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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