如何在C csv文件读取数据时处理NaN的++
题
我读在时间序列数据的csv文件成C ++程序。但是我的数据包含 一些楠的。例如:
1-Jul-2010, 1.0
2-Jul-2010, 2.0
3-Jul-2010, NaN
4-Jul-2010, 3.0
要解决这个问题,我写在Matlab短的脚本,替换所有NaN的0.0 - 后来我在没有NaN的新文件中读取。有没有一种简单的方法或避免 这种预处理?
谢谢!
解决方案
由于大卫鉴于已经提到的,你不必预先处理档案。 strtof()和关于strtod()都能够将NaN的字符串转换为NaN的浮动/双值。
如果您想更换您的数据集0.0的值,你可以这样做使用isnan()函数。
if (isnan(val))
{
val = 0.0;
}
其他提示
你想要的结果是一个浮子(或双击)的NaN - 然后使用STDLIB的strtod()函数
如果你想以自己的方式来处理它(将其设置为0等),然后读取每一行成一个字符串第一,使用strcmp检查NaN(),然后解析字符串,这取决于你发现了什么 - 更容易,如果为NaN只能出现在一个列。
不隶属于 StackOverflow