Введите "Файл" для ввода "std::string"

Я хочу поместить содержимое txt-файла, загруженного этим файловым браузером, в строку fileLoadToString. Преобразование работает при использовании пути в кавычках.

FileChooser myChooser ("Please select the moose you want to load...",
                               File::getSpecialLocation (File::userHomeDirectory),
                               "*.txt");
        if (myChooser.browseForFileToOpen())
        {
            File theTextFile (myChooser.getResult());
            fileLoadToString = theTextFile;

        }

Вот где появляется сообщение об ошибке "No viable overloaded =". Как правильно конвертировать?

В рамках основного процесса я хочу загрузить строку в поток для токенизации и дальнейшего анализа.

std::ifstream inf(fileLoadToString);

Любая помощь всегда очень ценится, спасибо.

File FileChooser::getResult() const
{
    // if you've used a multiple-file select, you should use the getResults() method
    // to retrieve all the files that were chosen.
    jassert (results.size() <= 1);

    return results.getFirst();
}

1 ответ

Решение

myChooser.getResult возвращает juce::File объект. Вам нужно прочитать из этого файлового объекта. Если fileLoadToString имеет тип juce::StringВы можете просто написать:

            File theTextFile(myChooser.getResult());
            fileLoadToString = theTextFile.readFileAsString();

Если это другой тип, вам придется преобразовать результат readFileAsString,

Другие вопросы по тегам