You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java技术问询:如何将节点坐标存储至列表?

嘿,我来帮你搞定这个问题!既然你已经能读取.cav文件里的节点数和坐标信息了,把x、y坐标存入列表其实挺简单的。我分两种常用开发语言给你举实际例子,你看哪种更贴合你的项目场景:

如果你用C语言开发

C里我们可以用结构体数组来规整存储每个节点的坐标,步骤如下:

  • 首先定义一个结构体,用来封装单个节点的x、y值:
typedef struct {
    int x;  // 如果是浮点数就改成float/double
    int y;
} Node;
  • 接着根据读取到的节点数量,分配对应的内存空间(动态分配更灵活):
int node_count = 0;
// 这里假设你已经从文件中读取到了正确的node_count数值
Node* nodes = (Node*)malloc(node_count * sizeof(Node));
  • 然后在读取坐标的循环里,把每一对x、y存入数组:
FILE* fp = fopen("your_cave_file.cav", "r");
// 注意:这里要先跳过文件开头的非坐标内容(比如注释、节点数声明行),确保定位到坐标行
for (int i = 0; i < node_count; i++) {
    fscanf(fp, "%d %d", &nodes[i].x, &nodes[i].y);
}
fclose(fp);
  • 记得在使用完数组后释放内存,避免泄漏:free(nodes);
如果你用Python语言开发

Python的列表操作就更简洁了,直接用列表存储元组或字典都可以:

  • 先初始化一个空列表,准备存坐标:
nodes = []
node_count = 0  # 假设已经从文件里读取到节点总数
  • 打开文件循环读取每一行坐标,加入列表:
with open("your_cave_file.cav", "r") as f:
    # 先跳过文件头的无关内容,找到坐标开始的行
    for _ in range(node_count):
        # 按空格拆分每行内容,转成整数(浮点数就用float)
        x, y = map(int, f.readline().strip().split())
        nodes.append( (x, y) )  # 用元组存储,也可以用字典:{"x": x, "y": y}
  • 之后访问起来也很方便,比如取第i个节点的x坐标:nodes[i][0](用元组的情况)

小提醒

一定要注意.cav文件的格式细节,有些文件开头会有注释行、节点数说明行之类的内容,读取坐标前要先跳过这些行,确保你读的是正确的x、y数据哦!

内容的提问来源于stack exchange,提问作者GZoid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:46:56