Mam trudne zadanie i trochę utknąłem tak wygląda moja funkcja (takie musi przyjąć argumenty), którą muszę zrobić int readArray(FILE *wp, char *name, int n, double M[n][n]). Muszę przeczytać macierz z pliku i wsadzić nazwę macierzy do tablicy wskaźnikowej, która przechowuję nazwę oraz wsadzić macierz do tablicy dwuwymiarowej o wielkości n. Próbowałem uruchomić program, ale dostaje segmentation fault.
To jeszcze nic, jest jeszcze coś gorszego. W pliku mam drugą macierz, którą też muszę odczytać, ale jak zacząć czytać tekst od konkretnej linijki? Myślałem o jakimś scanf, w którym zapytam użytkownika od której linijki chce czytać i wtedy, mam zmienną przechowującą tą informację, ale co potem, czy są jakieś funkcje w c, które pozwolą mi na czytanie od pewnego miejsca?
Oto mój program:
#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;
}
Oraz plik z moimi danymi
arr1
9 8 7
6 5 4
3 2 1
arr2
1 2 3
4 5 6
7 8 9