【发布时间】:2015-11-21 00:54:01
【问题描述】:
1 42.4 73.45 Albany, N.Y.
2 35.05 106.39 Albuquerque, N.M.
3 35.11 101.5 Amarillo, Tex.
4 61.13 149.54 Anchorage, Alaska
5 33.45 84.23 Atlanta, Ga.
6 30.16 97.44 Austin, Tex.
给定一个 int float 浮点字符串格式的 .txt 文件中这样的表格,我必须读取该文件并将数据放入相应的数组中。
数据必须输入到并行数组中
第 1 列是城市标识
第 2 列是 x 位置
第3列是y位置
第 4 列是城市名称
我可以读取数组,但我不知道如何将数据放入相应的数组中。
我尝试过使用
while ((fscanf(filePtr, "%d %f %f %[^'\n']", cityid, x_location, y_location, city_name)) == 4)
但是循环遍历整个文件并且只将最后一个条目放入数组中。
所以我尝试了这个循环
while (fscanf(filePtr, "%d %f %f %[^'\n']", tcityid, tx_location, ty_location, cityname) == 4)
{
cityid[i] = tcityid;
x_location[i] = tx_location;
y_location[i] = ty_location;
*city_name[i] = cityname;
}
所以我的想法是 fscanf 将读取一行并将每个值放入相应的变量中,然后将其复制到数组中。我的代码将构建并运行,但是当它到达 while 循环时,它会抛出一个错误,提示
一个无效参数被传递给一个认为无效参数致命的函数。
我认为问题出在city_name,我不确定如何处理。任何帮助将不胜感激。
谢谢你
【问题讨论】:
标签: c arrays pointers file-io char