Есть несколько проблем с кодом, который вы пробовали, во-первых здесь
void main(FILE *inputFile, FILE *outputFile){ }
вы пытаетесь изменить прототип main()
, что неверно. Согласно C Стандарт Раздел 5.1.2.2.1 Запуск программы , либо должно быть
int main(void) { /* ... */ }
или
int main(int argc, char *argv[]) { /* ... */ }
Так сделайте это как
int main(int argc, char *argv[]) {
/*some_code */
}
Далее, чтобы открыть файл с помощью fopen()
из командной строки, это
token = fopen(&inputFile, "r");
совершенно неверно, поскольку fopen()
возвращает аргумент FILE*
, а не char*
и аргумент, который вы указали fopen()
, также неверен. Прочтите страницу руководства fopen () , там написано
FILE *fopen(const char *path, const char *mode);
Пример кода
int main(int argc, char *argv[]) {
if( argc!= 3 ) { /*if user input is not correct, inform user */
printf("./transform inputfile outputfile \n");
return 0;
}
FILE *fp = fopen(argv[1],"r);
if(fp == NULL) {
/* error handling */
return 0;
}
/* do_stuff_with_fp */
}