Очевидно, это очень простая задача, но я до сих пор боролся с ней.
Я инициализирую массив структур. Каждая структура состоит из двух массивов.
Затем я пытаюсь прочитать из файла и заполнить мой массив структур.
Файл, составленный из строк, выглядит примерно так:
sign1 path1
sign2 path2
sign3 path3
У меня проблема с заполнением, а затем с печатью моего массива.
Любая помощь очень ценится.
Спасибо!
typedef struct {
char firma[333];
char path[100];
}riga;
void riempi_riga(riga* r, FILE* f1) {
//fscanf(f1, "%s %s\n", r->firma, r->path);
fgets(r->firma, 33, f1);
fgets(r->path, 100, f1);
return;
}
void stampa_riga(riga* r) {
printf("%s %s\n", r->firma, r->path);
return;
}
int num_lines(FILE *f1) {
char c;
int lines = 0;
while ((c = fgetc(f1)) != EOF)
if (c == '\n')
lines++;
if (c != '\n')
lines++;
rewind(f1);
return lines;
}
int main() {
riga* file_firme[1000];
int i = 0;
int j = 0;
FILE* f1;
f1 = fopen("C:\\Users\\blabla\\Desktop\\firmaMD5.txt", "r");
if (f1 == NULL) {
printf("non sono riuscito ad aprire il file!\n");
return 0;
}
int num_righe = num_lines(f1);
for (i; i < num_righe; i++)
riempi_riga(&file_firme[i], f1);
//riempi_riga(r1, f1);
//stampa_riga(r1);
//fflush(f1);
for (j; j < num_righe; j++) {
stampa_riga(&file_firme[j]);
}
if (fclose(f1) != 0)
printf("non sono riuscito a chiudere il file\n");
return 0;
}