Ich kann nicht verstehen, was in meinem Programm falsch ist. Ich habe solche Eingabedaten:
01000
11110
01000
Ich möchte es in speichern: vector< vector<int> > matrix;
vector< vector<int> > fillMatrix(vector< vector<int> > matrix, int height, int width, ifstream &read)
{
// Make 2d-array [matrix]
matrix.resize(width);
for (int i=0; i < width; ++i)
matrix[i].resize(height);
// Fill it up with data
for (int i=0; i < height; ++i)
{
std::string tempLine;
std::getline(read, tempLine);
for (int j=0; j < tempLine.length(); ++j)
{
// This shows right information
//std::cout << tempLine[j] << " - " << (int)(tempLine[j] - '0') << "\n";
matrix[i][j] = (int)(tempLine[j] - '0');
}
}
return matrix;
}
matrix = fillMatrix(matrix, 3, 5, ifstreamHandle);
Und nun die Funktion, die die Matrix anzeigt:
void showMatrix(vector< vector<int> > matrix, int width, int height)
{
// Show the matrix
for (int i=0; i < height; ++i)
{
for (int j=0; j < width; ++j)
{
std::cout << matrix[i][j];
}
std::cout << "\n";
}
}
showMatrix(matrix, 5, 3);
Und das Ergebnis von showMatrix
ist:
01000
11100
01000
In der zweiten Reihe fehlt eine "1". Was ist los?