Я пытаюсь прочитать из файла с терминала. Первая и вторая строки файла состоят из номера строки и столбца. В то время как другие строки состоят из содержимого символьного символа. Я смог прочитать первую и вторую строки и сохранить их значения и соответственно присвоить размер матрицы. Но я не могу понять, как читать оставшуюся часть.Чтение из файла char с помощью char в C++
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char *argv[])
{
ifstream f;
f.open(argv[1]);
int row, col;
f >> row;
f >> col;
char matrix[row][col];
char c;
int i = 0, j = 0;
while (!f.eof()) {
//TODO
}
f.close();
return 0;
}
edit1: Содержимое файла:
11
11
X XXXXXXXXX
X X X
X XXXXX X X
X X X X
XXXXX XXX X
X X X X
X X XX X X
X X X X
X XXXXXXX X
X X
XXXXXXXXXXX
Читать 'col' количество символов' row' количество раз. Используйте цикл, чтобы сделать это, проверьте успех после каждого чтения и выхода из цикла, это ошибка. И не используйте 'eof' как условие цикла, это [почти всегда неправильно] (http://stackoverflow.com/questions/20030925/read-from-file-char-by-char-in-c). – jrok
Вы хотите предположить, что матрица содержит правильное количество элементов ('row' x' col')? Что, если у него больше? Или меньше? – Beta
Да, он будет содержать точные числа строк и столбцов – user2878007