評價: 0 回應: 2 閱覽: 435
置頂

未知行數二維陣列讀檔

板上C大神好~~

小弟想要從檔案讀取一個二維陣列

檔案以空白為分隔, 每三段數字應該讀成一列 (row)

已知的話我會

但在總列數未知的情況下, 不知道該怎麼讀才對

目前只能想到類似下面這樣的寫法

但總會跳出: vector subscript out of range 的警告視窗而不能跑

想請問該怎麼修正才是?

#include <fstream>
#include "iostream"
#include <vector>
using namespace std;

int main()
{

        fstream file;
        file.open("abc.txt", ios::in);
        if (!file)
                cout << "error! \n";

        int i = 0;
        vector<int> A;
        vector<int> B;
        vector<int> C;
        while (file >> A[i] >> B[i] >> C[i]) {
                i++;
        }

        file.close();

        return 0;

}

 

熱門回應

檔案eof()、vector end()-1

IO效率問題,用硬體讀取速度、程式讀取速度、文件大小算一下

不會差太多的話不是問題

你要這樣寫,就宣告vector的時候先給size

建議你用container前都去翻一下document

你的資料量大 那你要先用std::vector::max_size()看看vector最大的容量

能不能合乎你的要求

不行的話就還是用array吧

會員登入 (先登入會員才能回覆留言喔!)

Facebook留言