从文件中读取字符串和双精度的组合

Posted

技术标签:

【中文标题】从文件中读取字符串和双精度的组合【英文标题】:Reading combination of string and double from file 【发布时间】:2015-09-28 01:07:44 【问题描述】:

我正在寻找一种高效且简单的方法来从文本文件中读取大量数据。我有一个名为 Information 的类,它包含 3 个私有变量:

string location;
double latitude;
double longitude;

输入的格式将是一个巨大的文本文件,每一行的格式如下:

34.3153920 66.7239403 Seattle

我已经尝试了几条路线。

    我试图逐行读取它并在信息构造函数中解析它,但 stod() 函数截断了我的数据。它将读取类似 34.3153 和 66.7239 的内容。

我还尝试通过 getline(ss, line, ' ') 使用空格分隔符读取它,但这也不起作用。

要求任何人为我编写代码,但是有没有一种简单的方法可以让我将这 3 个字段映射到我的 Information 对象,而不必使用解析器来搞砸?

感谢任何反馈,谢谢!

事实上,stod 并没有截断我的数据。截断来自我的 cout 语句中的精确度(或缺乏精确度)。

【问题讨论】:

the stod() function was truncating my data 你确定这不是输出流的precision 的问题吗?您是如何验证数据被截断的? 谢谢@user657267 我犯了一个非常粗心的错误,没有意识到这一点。我会解决这个问题。 你还需要这个答案吗? 我没有,我不太清楚如何标记它已回答。 【参考方案1】:

我已经解决了实际上是我的 cout 语句影响了我的 double 值的精度的问题!

【讨论】:

以上是关于从文件中读取字符串和双精度的组合的主要内容,如果未能解决你的问题,请参考以下文章

从最高到最低(并行数组)对字符串数组和双精度数组进行排序并对齐文本

如何在 C++ 中的同一函数中使用字符串和双精度数

将字符串从组合框转换为双精度

我想使用指针和双指针读取 n 个字符串,我得到一个奇怪的错误,访问违规写入位置 [关闭]

将(n个第一个字节)无符号字符指针转换为浮点数和双精度C++

将列的数据类型从字符串转换为双精度