二维矩阵 中的 二维 是编译期确定的,比如 double mtx[1920][1080],你能保证这一点吗?
所有一切无非就是从文件 fscanf("%lf" 得来,代码怎么写取决于你想达到什么效果。
假设编译期不知道有多少行多少列,那么我就定义一个 size_t row 用来保存行数,一个 size_t col 用来保存列数,一个 vector<double> data 用来保存 row*col 个数据。
先读取第一行,解析一个个double类型,如果解析失败,直接将电脑砸掉。将解析出来的数据保存到data尾部,同时将这行解析出的数量保持到 col;
然后读取第二行,解析一个个double类型,如果解析失败,直接将电脑砸掉。将解析出来的数据保存到data尾部,同时比较这行解析出的数量是不是和col相同,不同的话,将电脑砸掉;
其后一行一行的读取,直到行读取失败,每一行的处理同第二行的处理。
最后,将行数保存到 row 中就行了。
第r行第c列的数据就是 data[r*col+c]