【发布时间】:2016-04-24 03:47:35
【问题描述】:
我有一个data.txt 文件组织如下:
节点编号
10
NodeId 坐标
0 0 0
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
边(从 i 到 j)权重
0 1 1.5
1 1 2.1
2 1 3.3
3 1 4.0
4 1 5.0
5 1 6.6
6 1 3.7
7 1 8.1
8 1 9.3
9 1 10.2
如何读取和存储数据如下:
int nodeNumber; // <--------- get and store number in line number 2 in text file.
std::vector<Node> nodes(nodeNumber);
double x1, y1;
for (int i=0; i< nodeNumber; i++) {
nodes.at(i) = g.addNode();
x1 , y1 //<-- x1 and y1 store coordinate from line 4 to line 4 + nodeNum, respectively
coord[nodes.at(i)].x=x1;
coord[nodes.at(i)].y=y1;
}
从行:
Edge(from i to j) Weight //(line number 3+nodeNum (=3+10) ) 到末尾。
i
我不知道这样做。谁能帮帮我?
【问题讨论】:
-
问题是问题的核心是重复的,但整个问题与此处发布的有关从文件中读取整数的其他问题略有不同。
-
@dsz 为什么在 C++ 中有流时建议使用
fopen和scanf? -
好的,我知道 fopen 和 scanf 是老式的,我刚刚意识到标签正在寻找流解决方案。应该坚持我的最后一点。
-
@dsz “我知道 fopen 和 scanf 是老式的,...” 不,它们不是 old school,这些只是从来都不是 C++ 学校的一员。
标签: c++ file-io iostream fstream