Это может быть не слишком элегантное решение, но оно решает проблему.
Реализуйте свою собственную специальную функцию, которая считывает символы с экрана.Как только он заметит конец строки, \n
, интерпретируйте это как строку.Примерно так:
int readInteger(char *endCharacter) {
char input;
int integer;
integer = 0;
input = getchar();
while (input != ' ' && input != '\n') {
integer += (int)input - '0';
integer *= 10;
input = getchar();
}
*endCharacter = input;
return integer;
}
int *integerRowFromInput() {
int *row;
int size;
char endCharacter;
row = malloc(sizeof(int));
row[0] = readInteger(&endCharacter);
size = 1;
while (endCharacter != '\n') {
size++;
row = realloc(size * sizeof(int));
row[size - 1] = readInteger(&endCharacter);
}
return row;
}
Конечно, этот код нуждается в адаптации для дальнейшего использования, но это может быть подходом для получения входных данных без указания размеров матрицы.