Я пытаюсь не жестко указывать имя входного файла в моей программе на C. У меня есть все остальные компоненты, которые работают, когда я hardcode имя файла. Но хотелось бы передать ему строковое имя файла. Я пытаюсь выполнить компиляцию файла с именем Matrix.c
и назову его исполняемый файл matrix
.Как передать имя файла при выполнении программы на языке C
Итак, в терминале, когда я добираюсь до своего рабочего каталога.
gcc -g Matrix.c -o matrix
тогда, когда я компилирую
./matrix
Он не имеет имя файла, переданное ему, так что я буду чек, что и пользователь ввел имя файла для загрузки.
Однако, когда кто-то передает имя файла, если он будет принят, как:
./matrix filename.txt
или
./matrix < filename.txt
С последним вариантом, я не могу показаться, чтобы получить имя аргумента передан функции от argv[1]
- это просто «(Null)».
Я знаю, что это очень упрощенный вопрос. Но я просто полностью покинул свой рокер? Это как-то связано со мной на OS X El Capitan. Я знаю, что раньше я использовал соглашение «<».
Я осмотрелся, и есть довольно много разных решений и разные способы справиться с этим. – WallofKron
вы можете показать нам код 'matrix.c'? Перенаправление с помощью '<' не требует дополнительных аргументов, но чтение 'stdin' с помощью' scanf', 'gets', как бы вы не работали над стандартным вводом. –
Когда вы используете <, вы перенаправляете ввод с вашего имени файла в свою программу. –