У меня есть задача. Я должен создать функцию, которая имеет определенные c аргументы (int readArray (FILE * wp, char * name, int n, double M [n] [n]). Я должен прочитать имя массива из файла и поместить в массив указателей, тогда я должен прочитать массив и поместить их значение в массив. Я пытаюсь запустить свою программу, но я получаю ошибку сегментации.
Также в моем файле у меня есть второй массив, так что Я должен знать, как поместить их в другой массив (arr2), но я должен прочитать из пятой строки. Как это сделать? Я думаю об использовании scanf, и в этом scanf я бы спросил пользователя, из какой строки он хочет читать, но я не знаю, как это сделать. Или, может быть, я должен попытаться обнаружить строку, и если я обнаружу вторую строку, я бы прочитал из второй строки, я получаю задачу. Я должен создать функцию, которая имеет указать c аргументы (int readArray (FILE * wp, char * name, int n, double M [n] [n]). Я должен прочитать имя массива из файла и поместить в массив указателей, затем я должен прочитать массив и положить их значение в массив. Я пытаюсь запустить свою программу, но я получить ошибку сегментации.
Кроме того, в моем файле есть второй массив, поэтому я должен знать, как поместить их в другой массив (arr2), но я должен прочитать из пятой строки. Как это сделать? Я думаю об использовании scanf, и в этом scanf я спрашиваю пользователя, с какой строки он хочет прочитать, но я не знаю, как это сделать. Или, может быть, я должен попытаться обнаружить строку, и если я обнаружу вторую строку, я бы прочитал из второй строки
Это моя программа
#include <stdio.h>
#include <stdlib.h>
int readArray(FILE *wp, char *name, int n, double M[n][n])
{
int i = 0, j;
fscanf(wp, "%s", &name[0]);
printf("Print name: %s", name);
return 0;
for (i = 0; i < n; ++i)
for (j = 0; j < n; ++j)
fscanf(wp, "%lf", &M[i][j]);
printf("Print array: %s", name);
}
int main (int argc, char *argv[])
{
FILE *wz;
int n = 3;
char *name[1];
char *name2[1];
double arr[n][n];
double arr2[n][n];
if (argc != 2) {
printf("Wrong arguments number\n");
printf("I should run this way:\n");
printf("%s source\n",argv[0]);
exit(1);
}
if( (wz= fopen(argv[1],"r")) == NULL) {
printf("Open error %s\n", argv[1]);
exit(1);
}
readArray(wz, *name, n, arr);
readArray(wz, *name2, n, arr2);
int fclose(FILE *wz);
int fclose(FILE *wc);
return 0;
}
Это мой текстовый файл, который я получить:
arr1
9 8 7
6 5 4
3 2 1
arr2
1 2 3
4 5 6
7 8 9