Latest web development tutorials
×

C курс

C Язык учебника C Краткое введение C параметры окружающей среды C Структура программы C Базовый синтаксис C Типы данных C переменная C постоянная C Storage Class C операторы C судья C циркуляция C функция C Обзорное правила C массив C указатель C строка C структура C союз C поле Bit C typedef C Входной и Выходной C грамотность документов C препроцессор C заголовок C Слепки C Обработка ошибок C Рекурсия C Переменный параметр C Управление памятью C Параметры командной строки C Классические 100 случаев

C Стандартная библиотека

C Стандартная библиотека - справочное руководство C Стандартная библиотека - <assert.h> C Стандартная библиотека - <ctype.h> C Стандартная библиотека - <errno.h> C Стандартная библиотека - <float.h> C Стандартная библиотека - <limits.h> C Стандартная библиотека - <locale.h> C Стандартная библиотека - <math.h> C Стандартная библиотека - <setjmp.h> C Стандартная библиотека - <signal.h> C Стандартная библиотека - <stdarg.h> C Стандартная библиотека - <stddef.h> C Стандартная библиотека - <stdio.h> C Стандартная библиотека - <stdlib.h> C Стандартная библиотека - <string.h> C Стандартная библиотека - <time.h>

Параметры командной строки C

При выполнении программы, в командной строке можно передать значения в программе C. Эти значения называютсяаргументами командной строки, они играют важную роль в программе, особенно если вы хотите управлять из внешней программы, а не в коде , когда эти значения жестко закодированы, это особенно важно.

Параметры командной строки является использование основной функции () для обработки параметров, вкотором, ARGC относится к числу передаваемых параметров,ARGV [] представляет собой массив указателей, каждый из параметров , передаваемых в точке программы. Вот простой пример, чтобы проверить, есть ли командная строка предоставляется аргумент, и выполнить соответствующее действие в соответствии с параметрами:

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   if( argc == 2 )
   {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("Too many arguments supplied.\n");
   }
   else
   {
      printf("One argument expected.\n");
   }
}

Используйте параметр, скомпилировать и выполнить приведенный выше код, он будет производить следующие результаты:

$./a.out testing
The argument supplied is testing

Два аргумента, скомпилировать и выполнить приведенный выше код, он будет производить следующие результаты:

$./a.out testing1 testing2
Too many arguments supplied.

Не передавать параметры, скомпилировать и выполнить приведенный выше код, он будет производить следующие результаты:

$./a.out
One argument expected

Следуетотметить, ARGV [0] , чтобы сохранить название программы,ARGV [1] является указателем на первый указатель аргумента командной строки, * ARGV [п] последний параметр. Если без каких - либо аргументов, ARGC будет равен 1. В противном случае, если вы передаетепараметр, ARGC будет установлен на 2.

Между множеством параметров командной строки, разделенных пробелом, но если сам аргумент с пространством, а затем передавать параметры, когда параметры должны быть помещены в двойные кавычки "" или одинарные кавычки '' внутри. Давайте перепишем в приведенном выше примере, есть пространство, то вы можете вид, поместить их в двойные или одинарные кавычки. "" "." Давайте перепишем в приведенном выше примере, чтобы пройти программу, расположенного внутри параметров командной строки двойные кавычки:

#include <stdio.h>

int main( int argc, char *argv[] )  
{
   printf("Program name %s\n", argv[0]);
 
   if( argc == 2 )
   {
      printf("The argument supplied is %s\n", argv[1]);
   }
   else if( argc > 2 )
   {
      printf("Too many arguments supplied.\n");
   }
   else
   {
      printf("One argument expected.\n");
   }
}

Используйте простой параметр, разделенных пробелами, параметры, заключенные в двойные кавычки, скомпилировать и выполнить приведенный выше код, он будет производить следующие результаты:

$./a.out "testing1 testing2"

Progranm name ./a.out
The argument supplied is testing1 testing2