как параметры командной строки создать файлы

StackOverflow https://stackoverflow.com/questions/5801072

  •  22-10-2019
  •  | 
  •  

Вопрос

Я хочу сделать программу C, "Animal.c".
и в раковине,
Когда я печатаю

>animal -cat

Результат "мяу"

>animal -dog

Результат - «лук».
Это единственный способ?

void main(int argc, char **argv){
if(argv[1][0] == '-' && argv[1][1] == 'c' && argv[1][2] == 'a' && argv[1][3] == 't')
    printf("meow");
if(argv[1][0] == '-' && argv[1][1] == 'd' && argv[1][2] == 'o' && argv[1][3] == 'g')
    printf("bow");
}

В другом случае, когда я хочу сделать файл «кошка», который находится в «/животном»,
Предполагая, что папка «животное» уже находится в корневом каталоге.

     animal -cat  

Результатом является создание файла «кошка» в «/животное»
Абсолютный путь файла "Cat" - "/Animal/Cat"

как сделать ?
Есть ли другой способ получить значение опции?

Это было полезно?

Решение

getopt является популярным и почти стандартным способом параметров командной строки. Вы должны использовать это (или что -то подобное), а не аргументы командной строки, а не анализ. Это чрезвычайно склонна к ошибкам.

Другие советы

Если вы передаете имя файла, вы не должны ставить «-» перед ним. На самом деле '-'-это модификатор, который сообщает «Опция одиночного символа* S* следить», '-'-это модификатор, который сообщает «опция с именем дольше, чем следует один символ».

Первым шагом к EaSen ваша боль было бы использовать STRNCMP вместо проверки каждого символа прошедшего аргумента.

how to do ?

Чтобы ответить на ваш последний вопрос, вам нужно использовать что -то вроде Мкдир в сочетании с Fopen для создания файла.

is there another way to receive option value?Есть способ получить значения «опция», перенаправляя вход. Если у вас было две строки в вашей программе, у которых было 2 FGET:

char name[10];
char date[9];

fgets(name,10,stdin);
fgets(date,9,stdin);

и в файле с именем data.txt у вас

 Bob
 04/27/11

Вы можете перенаправить ввод в свою программу, как

 myprog < data.txt

И это было бы похоже на то, как вы вводите значения самостоятельно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top