Пожалуйста, исправьте ваши блоки форматирования / кода, теперь кажется, что вы читаете test.txt
, когда вам не удалось открыть файл и выйти из программы.
Вы должны иметь в виду, что переменная func
указывает на структуру данных func[51]
сейчас, когда вы fscanf
перезаписываете func[51]
все время новой строкой. И так как вы храните адрес, указывающий на func[51]
в массиве functions
, вы фактически не сохраняете содержимое массива char (func[51]
).
Вы можете решить эту проблему, сделав массив функций двумерным массивом char functions[201][51]
, а затем используйте strcpy для копирования структуры данных func
указывает на functions[i]
с strcpy(functions[i], func);
это приведет к чему-то вроде:
main() {
char func[51];
char functions[201][51];
FILE * inf;
if (( inf = fopen("test.txt", "r")) == NULL) {
printf("can't open so exiting\n");
exit(EXIT_SUCCESS)
} // <-- you are missing this one
int i = 0;
while( fscanf(inf, "%s", func) != EOF){
strcpy(functions[i++], func);
}
printf("%s\n", *functions); /* this is just for me to check if its working*/
}
Это также может быть:
while (fscanf(inf, "%s", functions[i++]) != EOF);