Подпись вашего main()
неверна.
Может измениться на
int main(int argc, char *argv[])
или
int main(int argc, char **argv)
, поскольку argv
означаетуказать на массив строк.
См. этот пост .
Поскольку для работы вашей программы необходимы входные и выходные файлы, вам следует проверить, получено ли необходимое количество аргументов или нет.
argc
будет иметь количество аргументов.Поскольку имя команды, используемой для запуска самой программы, считается как аргумент, наряду с двумя файлами, программе необходимо как минимум 3 аргумента.
Так что вы можете сделать что-то вроде
if(argc<3)
{
perror("Not enough arguments.");
return 1;
}
Кроме того, с помощью
gcc coursework.c CircleCode.txt CircleCode_tmp.txt
вы также просите компилятор компилировать ваши входные и выходные текстовые файлы, что, вероятно, не то, что вам нужно.
Вместо этого выможет сделать
gcc -Wall coursework.c -o your_executable
, чтобы скомпилировать программу, а затем запустить ее, как
./your_executable CircleCode.txt CircleCode_tmp.txt
Опция -Wall
gcc
используется для включения некоторых предупреждений, которые могут помочь вам лучше определитьи исправьте ошибки.
См. также это обсуждение.