我有一个包含1000行的文本文件,每行包含130个数字。 我想将数字导入数组然后使用它们。 我想打印出每行的前两个数字,我使用了一个循环,它没有像预期的那样工作。 输出应该是
1 126
2 124
3 128
4 123
//等......
代码是:
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include<cstdlib>
#include <array>
int main()
{
int l=0, r=0;
int line[1000][1000];
std::ifstream in("bragg_events.txt");
if (!in) {
std::cout << "Cannot open file.\n";
return;
}
for (l = 0; l < 1000; l++)
{
for (r = 0; r < 130; r++)
{
in >> line[r][l];
}
std::cout << line[0][l] << " " << line[1][l] << "\n";
}
in.close();
return 0;
}
它实际打印出来:
1 126(ok)
20 34(不行)
64 61
38 54
113 130
152 164
你猜错了什么?
答案 0 :(得分:3)
您的std::cout
声明必须在for
循环之外。 Line[1][l]
的第一个循环中未初始化r
。对?
答案 1 :(得分:0)
您可以使用新定义的对象的A
来定义具有两个f
数据成员的对象,而不是使用数组来存储文件中的值。类似的东西:
int
然后像这样读取文件:
std::vector