Я работаю над проектом на C, который требует от меня чтения значений матрицы из текстового файла.Первые две строки - это количество строк и столбцов, а остальные - фактические данные матрицы.
Например, что-то вроде этого:
2
2
1.0 2.0
3.0 4.0
Код, который я написал, вызывает у меня некоторые проблемы.Вот фрагмент:
matrix read(char* file){
FILE *fp;
printf("check 1\n");
fp = fopen(file,"r");
printf("file opened\n");
// Make the new matrix
matrix result;
printf("matrix created\n");
int counter = 0;
int i;
int j;
int holdRows;
int holdColumns;
if(counter == 0)
{ // read in rows
fscanf(fp, "%li", holdRows);
printf("here is holdRows: %li\n", holdRows);
counter++;
}
if(counter == 1)
{ // read in columns
fscanf(fp, "%li", holdColumns);
printf("here is holdColumns: %li\n", holdColumns);
counter++;
// Now that I know the dimensions, make the matrix
result = newMatrix(holdRows, holdColumns);
}
// For the rest, read in the values
for(i = 0; i < holdRows; i++)
for(j = 0; j < holdColumns; j++)
fscanf(fp, "%lf", &result->matrixData[i][j]);
fclose(fp);
return result;
}
Всякий раз, когда я запускаю это, holdRows и holdColumns не являются значениями, хранящимися в текстовом файле.Например, я попробовал матрицу 3X4, и она прочитала, что была одна строка и три столбца.
Может кто-нибудь сказать мне, что я делаю неправильно?
Спасибо:)