Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Proga_shpory.docx
Скачиваний:
44
Добавлен:
25.03.2015
Размер:
102.57 Кб
Скачать

42) Передача аргументов функции main(). Возврат из функции main().

Передача информации в функцию main()

Передача информации в main производится с помощью аргументов командной строки.

>D:\TT\Print.exe аргумент1 аргумент2 …

| аргумент 0 |

В общем случае заголовок main может быть следующим

[тип] main(int argc, char *argv[], char *envp[])

где argc определяет количество аргументов командной строки, всегда !=0, считается автоматически.

argv указатель на массив слов командной строки.

envp указатель на массив слов описывающий параметры среды.

Имена argc, argv[], envp[] могут быть другими. Тип либо int, либо void.

Аргументы командной строки – текстовая информация. В качестве аргументов командной строки можно передавать имена файлов, функций, текст, задающий режим работы программы, а также сами данные. Есть 3 способа использования main:

Когда функция не имеет типа и аргументов, в этом случае нет доступа к командной строке

Когда функция имеет 2 аргумента argc и argv, в этом случае функция имеет доступ ко всем словам командой строки.

Все 3 аргумента могут быть. Доступ к параметрам ОС

Т.к. разделителем слов в командной строки служит пробел, то если необходимо переслать значения, состоящее из нескольких слов, как один аргумент, их нужно выделить в кавычки.

main(int argc, char *argv[])

{

if (argc!=2)

{

puts(“\n Вы забыли ввести имя”);

exit(0);

}

printf(“\n Привет %s”,argv[1]);

getch();

return 0;

}

Запуск программы на выполнение

>prim ALLA

Результатом будет

Привет ALLA

void main (int argc, char *argv[], char *envp[])

{

printf(“\n Количество аргументов в командой строке %d”, argc);

printf(“\n Аргументы командной строки: \n”);

for (int i=1;i<argc;i++)

printf(“%s \n”, argv[i]);

printf(“\n параметры среды”);

for (i=0;envp[i];i++)

printf(“%s \n”,envp[i]);

}

При запуске из BC необходимо зайти в Run/arguments/набрать аргументы командной строки без имени функции.

Возврат значений

Функция main может вернуть значение в OC, это значение может быть 0 или !=0 оно занимает 1 байт, если программа успешно отработала, то принято возвращать 0, если не успешно, то любое другое значение.

43) Описание строк и символов. Функции ввода-вывода символов и строк.

Под строкой в С++ понимают последовательность символов , оканчивающуюся на признак конца строки ‘\0’. Строка является массивом символов. Различают строку-константу

“текст”

и строку-переменную, которая описывается следующим образом

char имя[максимальное количество символов +1];

char s[20];

char s[20]=”Gomel”;

char s[]=”gomel”;

Можно использовать указатели для работы со строками. В этом случае, нужно либо выделять память под строку, либо использовать указатель как рабочий указатель на массив символов.

сhar *y=”Гомель”;

означает, что будут выделена память под «Гомель» в 7 байтов, а в y запишется адрес нулевого символа.

char *s= new char [100]; // выделение памяти под строку

char T[200];

char *p=T; //установка указателя на нулевой символ строки

Ввод\вывод

gets(s); //ввод строки s

puts(s); // вывод строки s

Можно использовать для вывода строки

printf(“%s”,T);

При использовании для ввода строки с помощью

scanf(“%s”,T);

Необходимо учитывать, что разделителем элементов списка ввода является пробел, поэтому строка будет введена до первого пробела.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]