Параметры КОМАНДНОЙ СТРОКИ

 

У функции main() могут быть свои формальные аргументы. В них возникает необходимость, если нужно передать какие-либо значения в программу из командной строки.

int main(int argc, char *argv[]) {}

argc – определяет кол-во передаваемых параметров в командной строке, включая имя самой программ.

*argv[] – это массив указателей на строки.

argv[0] – имя самой программы;

argv[1] – первый параметр и т.д.

Функция main() может возвращать значение, если необходимо. Любая программа должна возвращать в DOS код возврата. При нормальном завершении он равен 0. В командных файлах можно анализировать этот код командой IF ERRORLEVEL 0 echo «Ok!». Если нет необходимости возвращать значение, то оператор return не нужен.

 

#include <iostream.h>

int main(int argc, char* argv[]) {

if(argc<2) {

puts(“Нет аргументов в строке”);

exit(1);

}

else {

cout<<”Имя выполняемой программы”<<argv[0]<<endl;

cout<<”Аргумент командной строки”<<argv[1]<<endl;

}

return 0;

}

Если программа завершилась с ошибкой, то можно передать код ошибки в DOS функцией exit(1).

 

ПРОИЗВОДНЫЕ ТИПЫ ДАННЫХ

 

Структуры

 

Рассмотрим новый тип данных - структуру. Он не только гибок для представления разнообразных данных, но и позволяет создавать новые типы данных.

Пример использования - создание каталога книг. Каждая книга имеет следующие атрибуты: шифр, название, автора, издательство, год издания, число страниц, тираж, цену. Это несколько массивов. Очень сложно организовать одновременную работу с каталогом, если нужно их упорядочить по названиям, авторам, цене и так далее. Лучше иметь один массив, в котором каждый элемент содержит всю информацию о книге.

Структура – это объект, состоящий из последовательностей поименнованных элементов. Каждый элемент имеет свой тип.

Для определения нового типа данных нужно его описать:

 

struct book {

char title [81];

char author[30];

float value;

};

 

book – это имя нового типа данных.

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

 

struct {

char title [81];

char author[30];

float value;

}libry;

 

Каждый элемент структуры определяется своим собственным описанием. Это переменные и массивы стандартных типов данных.

Шаблон является схемой без содержания. Он сообщает компилятору, как сделать что-то, но ничего не делает в программе, а вот создание структурной переменной, это и есть смысл слова «структура». Согласно шаблону под эту переменную выделяется память, равная сумме всех элементов (81).

struct book играет ту же роль, что и int, float перед именем переменной.

struct book doyle, panshin;

Для доступа к элементам структурной переменной используется операция точка. Имя переменной, точка, имя элемента структуры.

 

void main(void) {

struct book libry; //описание перем-й типа book

puts("Введите название книги");

gets(libry.title);

puts("Введите фамилию автора");

gets(libry.author);

puts("Введите цену книги");

scanf("%f",&libry.value);

printf("%s, %s, %p.2f",libry.title,libry.author,libry.value);

}

 

Структурную переменную можно инициализировать:

struct book libry={"Руслан и Людмила", "А.С.Пушкин", 1.50};

 

Массивы структур

 

Если переменных типа структура много, то определяется массив структур.

 

void main(void){

struct book libry[100];

int i;

for(i=0; i<100; i++){

puts("Введите название книги");

gets(libry[i].title);

puts("Введите автора книги");

gets(libry[i], author);

puts("Введите цену книги");

scanf("%f",&libry[i].value);

}

}

 

Индекс применяется к имени массива структур libry[i].

Если libry[2].title[3] – это 4-й элемент в title в 3-й структуре типа book.

 








Дата добавления: 2018-11-25; просмотров: 277;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.