Я пытаюсь читать целые числа из текстового файла и помещать их в динамический массив, который будет представлен в виде векторов и матриц для набора.Как читать целые числа из файла в динамический массив
Пример нескольких строк из входного файла:
3#456
33#123456789
Цифры перед знаком фунта представляют элементы вектора или матрицы, поэтому 3 # означает вектор три элемента и 33 # будет означает матрицу с 3 строками и 3 столбцами.
Чтение данных на самом деле не является проблемой, так как нам сказали, что мы можем предположить, что мы знаем, какие строки являются матрицами и которые являются векторами, однако я никогда не работал с файлами ввода/вывода C++, поэтому я не знаю, как итерации по номерам 4,5,6 и поместить их в динамически созданный массив 3, 9, 12 и т. д. Вот несколько примеров того, с чем я работаю.
int *a;
int size_a;
char x;
ifstream infile("input.txt");
if (infile.is_open())
{
infile >> size_a;
// The x is basically a junk variable used to go past the '#'
// when reading the file
infile >> x;
a = new int[size_a];
}
После этого, я не имею ни малейшего представления о том, как цикл до конца строки и положить остальные элементы в массиве. Например, в этой строке числа 4, 5 и 6 нужно будет поместить в массив, а затем перейдем от добавления элементов и перейдите к следующей строке для работы над следующим массивом, который я не знаю, как сделайте это. Есть идеи?
... Вы не используете динамические массивы. Вы хотите 'std :: vector' –
Нет необходимости в векторах; 'new' дает возможность создавать массивы, размер которых известен не во время выполнения, а во время компиляции. Вы правы, это не динамически изменяемые размеры массивов, но они соответствуют требованиям OP, которые не включают изменение размера - просто не зная размер априори. – EyasSH
Вам нужно будет передать каждую цифру в переменную 'char' (например,' 'c'"), затем вы можете преобразовать ее из ASCII в число, используя выражение 'c - '0''. Используйте эти числа, чтобы получить правильные значения (и) значка 'size_a', а также значения элементов для записи в массивы/матрицы. –