Я хочу прочитать текстовый файл и преобразовать две ячейки из каждой строки в числа с плавающей запятой.
Если я сначала запустил:
someString = someString.substr(1, tempLine.size());
А затем:
std::stof(someString)
преобразует только первое число в someString в число. Остальная часть строки потеряна. Когда я обрабатывал строку в своей среде IDE, я заметил, что ее копирование и вставка в кавычки дает мне "\u00005\u00007\u0000.\u00007\u00001\u00007\u00007\u0000"
, а не 57.7177
.
Если я вместо этого сделаю:
std::string someOtherString = "57.7177"
std::stof(someOtherString)
Я получаю 57.7177
.
Минимальный рабочий пример:
int main() {
std::string someString = "\u00005\u00007\u0000.\u00007\u00001\u00007\u00007\u0000";
float someFloat = std::stof(someString);
return 0;
}
Такая же проблема возникает при использовании кодировки UTF-8 и -16.
Что происходит и что я должен поступить иначе? Должен ли я как-то удалить нулевые символы?