我正在创建一个小工具来读取csv文件数据,这些数据必须从csv文件中读取经度,纬度和信息,并以java脚本对象表示法将其写入另一个文件。 例: 42.363400,-71.098465,速度= 21 42.363327,-71.097588,Speed = 23
现在我知道我可以先读取整行,然后搜索并选择每个数据,将其分配给各个变量。 但是我想知道有没有办法使用scanf在一段时间内将数据提取到变量。我现在正在使用scanf:
scanf("%f %f %100[^\n]s",&latitude,&longitude,info);
我们可以在scanf中进行调整以完成此操作吗?
答案 0 :(得分:3)
只需将逗号放在需要的位置:还要记住单个空格与0个或多个空格的序列匹配:
while (scanf("%f , %f , Speed = %d",&latitude,&longitude,&speed) == 3)
/* store in array */
答案 1 :(得分:2)
除了chac的答案之外,您可能还希望使用sscanf()
,它接受指向缓冲区的指针,而不是scanf()
:
sscanf(csvFileBuff, "%f , %f , ... ",&latitude,&longitude, ... );