Я очень простой пользователь и мало что знаю о командах, используемых в C, поэтому, пожалуйста, потерпите меня... Я не могу использовать очень сложные коды. У меня есть некоторые знания в библиотеке stdio.h и ctype.h, но это все. У меня есть матрица в текстовом файле, и я хочу загрузить матрицу на основе моего ввода количества строк и столбцов.
Например, у меня в файле есть матрица 5 на 5. Я хочу извлечь конкретную подматрицу 2 на 2, как я могу это сделать?
Я создал вложенный цикл, используя:
FILE *sample
sample=fopen("randomfile.txt","r");
for(i=0;i<rows;i++){
for(j=0;j<cols;j++){
fscanf(sample,"%f",&matrix[i][j]);
}
fscanf(sample,"\n",&matrix[i][j]);
}
fclose(sample);
К сожалению, код не работает. Если у меня есть эта матрица:
5.00 4.00 5.00 6.00
5.00 4.00 3.00 25.00
5.00 3.00 4.00 23.00
5.00 2.00 352.00 6.00
И вводя 3 для строки и 3 для столбца, я получаю:
5.00 4.00 5.00
6.00 5.00 4.00
3.00 25.00 5.00
Мало того, что это не подматрица 2 на 2, но даже если бы я хотел первые 3 строки и первые 3 столбца, это не печатало ее правильно....
Мне нужно начать со строки 3 и столбца 3, затем взять подматрицу 2 на 2!
Я должен был закончить с:
4.00 23.00
352.00 6.00
Я слышал, что для этого можно использовать fgets и sscanf. Вот мой пробный код:
fgets(garbage,1,fin);
sscanf(garbage,"\n");
Но и это не работает :(
Что я делаю неправильно ?
Пожалуйста помоги. Спасибо !