【发布时间】:2015-04-18 23:33:44
【问题描述】:
我一直在研究这个项目,并且一直在读取文本文件,它们之间只有空格而不是逗号,所以我需要更新我将文件读入数组的方式。我试过使用 stringstream() 和 getline() 但没有运气。有谁知道我如何将这个文件读入数组?
这就是我之前的做法
void readData(ifstream& inputFile, double lat[], double lon[], double yaw[], int& numLines)
{
// Read in headers.
string header;
getline(inputFile, header);
// Read in data and store in arrays.
for (int i = 0; i < numLines; i++)
{
if (inputFile >> lat[i])
{
inputFile >> lon[i];
inputFile >> yaw[i];
}
}
但我不确定如何修改它以将这种类型的文件读入数组,而且我唯一感兴趣的是
纬度
经度
海拔(英尺)
速度(英里/小时)
全球定位系统
权力
间距
滚动
偏航
电机开启
834,,,,,,,,,,,,,,,,
latitude,longitude,altitude(feet),ascent(feet),speed(mph),distance(feet),max_altitude(feet),max_ascent(feet),max_speed(mph),max_distance(feet),time(millisecond),gps,power,pitch,roll,yaw,motor on
43.5803481,-116.7406331,0,0,0,0,0,0,0,0,539,10,97,178,180,141,0
43.5803481,-116.7406329,0,0,0,0,0,0,0,0,841,10,97,178,180,141,0
43.5803482,-116.7406328,0,0,0,0,0,0,0,0,1125,10,97,178,180,141,0
43.5803481,-116.7406329,-1,0,0,0,0,0,0,0,1420,10,97,178,180,141,0
43.580348,-116.7406328,0,0,0,0,0,0,0,0,1720,10,97,178,180,140,0
43.5803479,-116.7406326,-1,0,0,0,0,0,0,0,2023,10,97,178,180,140,0
43.5803478,-116.7406326,0,0,0,0,0,0,0,0,2344,10,97,178,180,140,0
43.5803476,-116.7406329,-1,0,0,0,0,0,0,0,2620,10,97,178,180,140,0
43.5803475,-116.7406329,-1,0,0,0,0,0,0,0,2922,10,97,178,180,140,0
43.5803473,-116.7406329,0,0,0,0,0,0,0,0,3221,10,97,178,180,140,0
如果有人能指出正确的方向,那就太好了。谢谢
【问题讨论】:
-
我看了另一个问题,它对我有点帮助,但我仍然不知道如何排除一些数据,因为我只需要纬度、经度、高度(英尺)、速度(英里/小时) , gps, power, pitch, roll, yaw, and motor on
-
@iAmTheDank :您可以使用 String.split(',') 来拆分传入的信息。但是,如果您碰巧有“I,John Carpenter”或其他带有逗号的字符串 - 那么它会将其拆分错误。你的数据没有,所以你应该是安全的。这将为您将所有内容放入一个数组中。 howtodoinjava.com/2014/06/02/…。所以你只需要保留你想要的,把剩下的扔掉(或者把所有的东西都存储到一个数组中)。
标签: arrays fstream delimiter comma c-strings