从文件中读取整数并初始化多维数组

时间:2017-04-04 00:06:22

标签: c++ arrays multidimensional-array

所以我有这个代码读取一个特定的文件,该文件的值分别为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。

2 个答案:

答案 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. 

如果矩阵中的行太短,则可能必须用零填充矩阵。