читать из файла с помощью read () в c ++ - PullRequest
0 голосов
/ 28 марта 2020

Привет мне нужно сделать что-то вроде файловой системы, и мне нужно писать и читать из файла (работает функция записи) У меня есть подпись функции

void read(int addr, int size, char *ans);

void BlockDeviceSimulator::read(int addr, int size, char *ans) {
    memcpy(ans, filemap + addr, size);
}

, и это моя функция для чтения из файла и распечатать

    std::string MyFs::get_content(std::string path_str) {

        std::string ans;
//open file
        BlockDeviceSimulator *newFile = new BlockDeviceSimulator(path_str);
        newFile->read(1,newFile->DEVICE_SIZE,(char*)&ans);
        std::cout << ans << std::endl;
        delete newFile;
        return "";
    }

Можете ли вы помочь мне, что здесь не так и почему оно не печатается?

1 Ответ

1 голос
/ 28 марта 2020

Вы пытаетесь привести адрес объекта std::string к указателю на char. Сначала вам нужно выделить достаточный размер для чтения в std::string - ans.resize(newFile->DEVICE_SIZE);. Во-вторых, вам нужно получить char * из std::string - &ans[0].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...