所以我有这个代码读取一个特定的文件,该文件的值分别为22和14,并在同一行。
int i=0;
double[][] vector=new double[100][997];
String line;
while ((line=br.readLine()) != null) {
line=line.trim();
String[] words = line.split("\t");
for (int j=0; j<997; j++) {
vector[i][j] = Double.parseDouble(words[j]);
}
i++;
}
如何创建一个多维数组,其中包含我从文件中读取的整数的大小?
例如,如果文件有22和10,则行应为22,列应为= 10。
答案 0 :(得分:0)
假设输入文件只包含以空格分隔的row和col值,您可以使用stringstream一次将一行一行流转换为int。
int rows, column;
std::string line;
std::ifstream file("Path To File");
if(file.is_open()){
std::getline(file, line);
std::cout << line << std::endl;
std::stringstream( line ) >> rows >> column;
file.close();
}
int matrix[ rows][ column ];
编辑使用std :: stringstream而不是std :: stoi
答案 1 :(得分:0)
从Brute Force开始,根据需要调整性能。
Loop while std::getline can read a line from the file
Write the line into a std::stringstream.
Make an empty std::vector.
Loop while >> can read a token from the std::stringstream
Push the token into the std::vector.
Push the std::vector into a std::vector of std::vectors.
如果矩阵中的行太短,则可能必须用零填充矩阵。