2017-10-11 13 views
-3

J'ai un fichier .dat contenant plein de entiers 100 par 100, et j'essaie de transférer x lignes et x colonnes dans un nouveau vecteur, j'ai réussi à ge la première rangée avec les colonnes désirées mais coincé en essayant d'arriver à la ligne suivante et jusqu'à x lignes, s'il vous plaît donner de l'aide. Ceci est mon code jusqu'à présent aussi de l'aide sur la partie affichage, je ne suis pas sûr de savoir comment afficher un vecteur avec plus d'une ligne et des colonnes. Essayé data.at(i).at(j) double pour la boucle, mais sans succèsflux de fichier C++, copier les données du fichier .dat au vecteur

//variable 
int row, col; 
string fname; 
ifstream file; 
vector<int> data; 

//input 
cout << "Enter the number of rows in the map: "; cin >> row; 
cout << "Enter the number of columns in the map: "; cin >> col; 
cout << "Enter the file name to write: ";   cin >> fname; 

//open file 
file.open(fname, ios::in); // map-input-100-100.dat 

int temp; 
for (int i = 0; i < col; ++i) 
{ 
    file >> temp; 
    data.push_back(temp); 
} 
// display first row of data 
for (int i = 0; i < data.size(); ++i) cout << data.at(i) << ' '; 
cout << endl; 

Répondre

0

Le code pourrait ressembler à ceci:

vector<vector<int>> data; // instead of your definition of data:access data[r][c] 

for (int j = 0; j < row; ++j) 
{ 
    vector<int> x(column);   
    for (int i = 0; i < col; ++i) 
    { 
     file >> temp; 
     x[i] = temp; 
    } 
    data.push_back(x); 
}