У меня есть своего рода карта из чисел в файле. Я хочу прочитать все это в 2D-вектор, который я создал внутри функции для него.
Я инициализировал векторы в 0с.
Что происходит, когда я его компилирую, я печатаю векторную > матрицу, и ничего не меняется. Все остается в нулях.
EDIT :: Программа не показывает ошибок при открытии файла. Я полагаю, что проблема может быть вокруг k, который после некоторой отладки не получает правильное число. Я также вынул .eof () из цикла.
Это функция копирования. Открывает основной файл "casateste.txt"
void copiar(vector<vector<int> > &matriz)
{
ifstream origem;
origem.open("casateste.txt");
int k;
while(!origem.eof())
{
for(int i=0; i<r; i++)
{
k=origem.get();
for(int j=0; j<c; j++)
{
k=origem.get();
matriz[i][j]=k;
}
}
}
}
Это функция печати.
void printMapa(vector<vector<int> > &matriz)
{
for(int i=0; i<r; i++)
{
for(int j=0; j<c; j++)
{
cout << matriz[i][j];
}
cout << endl;
}
}
Инициализация матрицы:
main(){
int i;
vector<vector<int> > matriz(r, vector<int>(c));
for(i=0; i<r; i++) {matriz[i].resize(c);}
copiar(matriz);
printMapa(matriz);
}
Матрица должна быть примерно такой (когда ее пустые места заполняются -1 или что-то в этом роде.
32222222222222222222222224
1 1 1
1 1 1
1 9 1 9 1
1 122222 22222221
122222222 22 1
1 1 1
1 1
1 9 1 1
1 1 1
1 1 1
12222222222222622222222221
1 1 9 1
1 1
1 1 1
1 9 1 1
62222222222222222222222225
Когда он печатает, это просто нули.