我想读取一个 txt 文件并将每行中的两个单元格转换为浮点数。
如果我第一次运行:
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 编码也会出现同样的问题。
发生了什么,我应该做些什么不同的事情?我应该以某种方式删除空字符吗?