Вы можете прочитать, например, для первой строки данных,
fscanf(filein, "sample[0][0]=%d; sample[0][1]=%d;", &arr[0][0], &arr[0][1]);
но он очень хрупкий, потому что если входной файл не совсем такой, вы получите непредсказуемое поведение
Вы можете распечатать с
printf("(*inputs)[0][0] = %d; (*outputs)[0]=%d;", arr[0][0], arr[0][1]);
но, вероятно, я неправильно понял оператор print, поскольку не знаю точно, что вы хотите, чтобы ваш код делал.
Теперь для большого количества данных .....
новая версия ... намного проще ... D'oh!
int a,b;
for (i=0; i<10; i++) {
for (j=0; j<2; j++) {
fscanf(samples, "sample[%d][%d]=\%d;", &a, &b, &arr[i][j]);
printf("int = %d\t", arr[i][j]);
}
printf("\n");
}
так что теперь вы читаете в числовых значениях из образца как a
и b
- но затем не используете эти значения a
и b
- хотя, чтобы написать хорошую программу, вы можете проверить значения a
и b
равны i
и j
, как вы ожидаете.
старая не рабочая версия ниже
char* string_input[100]; // we need this to get the right format for scanf...
for (i=0; i<10; i++) {
for (j=0; j<2; j++) {
sprintf(string_input, "sample[%d][%d]=\%d;", i, j)
fscanf(samples, string_input, &arr[i][j]);
printf("int = %d\t", arr[i][j]);
}
printf("\n");
}
что делает строку Тейлора пригодной для чтения в ваших данных построчно ...
, например, если i=8
и j=1
, то string_input
будет sample[8][1]=%d;