Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на C / C++ / Нейбауэр А. Моя первая программа на С.doc
Скачиваний:
182
Добавлен:
02.05.2014
Размер:
3.75 Mб
Скачать

Функция puts()

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

  • Строковый литерал:

puts("Всем привет!");

  • Строковая константа:

#define MESSAGE "Всем привет"

main()

{

puts(MESSAGE);

}

  • Строковая переменная:

char greeting[]="Всем привет";

main()

{

puts(geering);

}

Помните, литерал (или константное выражение) — это конкретный набор символов, который вводится непосредственно в инструкции Си или Си++ вместо имени константы или переменной.


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

Большинство компиляторов выполняют перевод строки после выполнения функции puts(). Это значит, что после того, как данные выведены на экран монитора, курсор автоматически переходит в начало следующей строки.

Однако некоторые компиляторы не выполняют перевод строки. При работе с такими компиляторами для перевода курсора вы должны вставить специальный управляющий код \n в конце строки, предназначенной для вывода на экран (подробнее об управляющих кодах смотри дальше в этой главе). Хотя это свойство компилятора выглядит как недостаток, на самом деле оно может оказаться довольно полезным. Если автоматический перевод строки отсутствует, можно использовать несколько инструкций puts() для вывода на экран одной строки, поставив код \n только в том месте, где вы хотите закончить ее и перейти на следующую.

В примерах, приведенных в этой книге, мы, как правило, вводили код \n в те инструкции, где используется функция puts(). В зависимости от вашего компилятора, вы, конечно, можете его опускать.

Функция putchar()

Функция putchar() предназначена для вывода единичного символа на экран. Параметром функции может являться:

  • символьный литерал:

putchar('H');

  • символьная константа:

#define INITIAL 'H'

main()

{

putchar(INITIAL);

}

  • символьная переменная:

main()

{

char letter;

letter='G';

putchar(letter);

}

С помощью функции putchar() можно отображать только один символ. Инструкция

putchar('Hi');

приведет к ошибке компиляции.

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

Большинство компиляторов Си не имеет автоматического перевода строки после функции putchar(), и курсор остается сразу за выведенным символом, не переходя к началу следующей строки. Для перехода на новую строку вы должны ввести управляющий код \n, который рассматривается дальше в этой главе.

Некоторые компиляторы имеют функцию putch(), которая аналогична функции putchar().

Двойственность символьных переменных

В некоторых системах при использовании функции putchar() вы должны включить в текст программы файл заголовков STDIO.H с помощью директивы #include. В этих системах функция putchar() является производной другой функции — putc(). Функция putc(), как вы увидите в главе 11, может направлять вывод на специальные устройства, такие как диск или принтер. Файл заголовков STDIO.H содержит информацию о том, как использовать функцию putc() для выполнения функции putchar().

Так как функция putc() может направлять вывод в дисковый файл, то ее использование (а соответственно, и применение функции putchar()) требует соблюдения определенных правил. Часть кодов, которые должны быть записаны в дисковый файл, не могут быть помещены в элемент памяти, отводимый для символа. Для осуществления возможности использования этих кодов функции putc() и putchar() были сконструированы таким образом, чтобы они могли работать и с целочисленным типом данных. Компилятор самостоятельно преобразует данные типа int в буквы, так что, имея дело с компиляторами, которые поддерживают стандарт K&R языка Си, можно писать программу следующим образом:

main()

{

int letter;

letter='G';

putchar(letter);

}

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

Некоторые программисты остаются верны стандарту K&R и всегда используют функцию putchar() с параметром типа int. Право выбора остается за вами.