数字のグリッドの大きなファイル (50x11k) があります。私がやろうとしているのは、値をベクトルに配置して、異なる行の値に同時にアクセスできるようにすることだけです。毎回セグフォルトが発生します (while ループの前に cout を実行することさえできません)。誰もが問題を見ますか?
これを行う簡単な方法があれば、私に知らせてください。ファイルが大きく、ある行の値を別の行と比較できるようにする必要があるため、単純な getline が機能しません。ファイルをジャンプして行を「つかむ」のではなく、単に「調べる」方法はありますか?その番号を入力して同じ行を調べて後で戻ることができるようにするには?大きな配列のようにファイルを見るのが好きですか?3 行目とその行の 5 文字を同時に見たいのですが、56 行目と 9 文字目も見たい、みたいな感じです。
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
using namespace std;
//int g_Max = 0;
int main() {
vector<vector<string> > grid;
ifstream in("grid.txt");
int row = 0;
int column = 0;
string c;
if (!in) {
cout << "NO!";
}
while (!in.eof()) {
c = in.get();
if ( c.compare("\n") == 0) {
row++;
column = 0;
}
else {
c = grid[column][row];
cout << grid[column][row];
column++;
}
}
return 0;
}