Используйте QFile вместо std :: ifstream.
Мои первоначальные рассуждения о том, что я предпочитаю QFile, а не std :: ifstream, были из-за того, что в общем случае я пишу код, использующий QString (или другой каркасный класс Qt) и есть другие классы каркаса Qt, которые достигают того, что я пытаюсь сделать (в данном случае QFile), я предпочту это просто потому, что это будет проще, и мне не нужно беспокоиться о преобразовании типов / странные крайние случаи.
Шефф добавил вескую причину, чтобы предпочесть QFile при использовании QStrings, который я полностью пропустил. Он сказал:
std :: string фактически кодирует agnosti c, где QString предоставляет методы для преобразования в и из различных кодировок, а внутренняя обработка строк в Qt выполняется с помощью четко определенного кодирование. Следовательно, использование QFile подготовит приложение к лучшей обработке кодирования и локали, чем «взлом» с .toStdString (). C_str ().