Прежде всего, вот входной файл:
0 a a b c
0 b d e f
1 c g h i
1 d j k l
Мы пытаемся прочитать из входного файла и сохранить получаемые символы в вектор, а затем сохранить его в 2D-таблице с именем T
.Мы запустили начальный цикл while, поэтому он захватывает первый столбец и выводит «abcd», но мы не можем заставить его вернуться через цикл while
или for
, чтобы получить другие строки и столбцы.Вот что мы имеем:
int readTable() {
int row, col; // row and col numbers
char col_c; // column indicator
ifstream fin("C:\\Users\\name\\OneDrive\\Desktop\\lines.txt", ios::in);
// Read in the file into T
while (fin >> row) // next line of file
{
fin >> col_c;
col = convert(col_c); // convert to a slot number
vector<char> v; // a vector to fill
char c; // one char from the file
// ** Fill v with chars from the file (there are VM chars)
for (int i = 0; i < VM; i++) {
fin >> c;
v.push_back(c);
}
// ** Put v in T[row][col]
T[row][col] = v;
} // end of while
Функция convert просто конвертирует 'a' в 0, 'b' в 1 и 'c' в 2, чтобы мы могли поместить векторы вправильные места в T
.Везде, где есть **, должна быть часть, которую мы редактируем и модифицируем.