ЧАСТЬ 3

ИНФОРМАТИКА

Электронное учебно-методическое пособие

 

 
 

 

4.3. Пробельные символы

Пробел, табуляция, перевод строки, возврат каретки, новая страница, вертикальная табуляция и новая строка – это символы, называемые пробельными, поскольку они имеют то же самое назначение, что и пробелы между словами и строками на печатной странице. Эти символы отделяют объекты, определённые пользователем, такие, как константы и идентификаторы, от других объектов программы [13].

Компилятор С игнорирует пробельные символы, если они не используются как разделители или как компоненты константы-символа или строковых литералов. Это нужно иметь в виду, чтобы дополнительно использовать пробельные символы для повышения наглядности программы (например, для просмотра редактором текстов).

 

4.4. Знаки пунктуации и специальные символы


Знаки пунктуации и специальные символы из множества символов С используются для различных целей: от организации текста программы до определения заданий, которые будут выполнены компилятором или откомпилированной программой. В табл. 4.1 перечислены эти символы [14].

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



ESC-последовательности

ESC-последовательности – это специальные символьные комбинации, которые представляют пробельные символы и неграфические символы в строках и символьных константах. Их типичное использование связано со спецификацией таких действий, как возврат каретки и табуляция, а также с заданием литеральных представлений символов, таких как символ «двойная кавычка».

ESC-последовательность состоит из наклонной черты влево, за которой следует буква, знаки пунктуации ' « \ или комбинация цифр.

В табл. 4.2 приведён список ESC-последовательностей языка С.

Если наклонная черта влево предшествует символу, не включённому в этот список, то наклонная черта влево игнорируется, а символ представляется как литеральный.

Например, изображение \c представляет символ «c» в литеральной строке или константе-символе.

Последовательности \ddd и \xdd позволяют задать любой символ в ASCII (Американский стандартный код информационного интерфейса) как последовательность трёх восьмеричных цифр или двух шестнадцатеричных цифр. Например, символ пробела может быть задан как \010 или \x08. Код ASCII «нуль» может быть задан как \0 или \x0. В восьмеричной ESC-последовательности могут быть использованы от одной до трёх восьмеричных цифр.

Точно так же в шестнадцатеричной ESC-последовательности могут быть использованы от одной до двух шестнадцатеричных цифр. Так, шестнадцатеричная последовательность для символа пробела может быть задана как \x08 или \x8.

Когда используется восьмеричная или шестнадцатеричная ESC-последовательность в строках, то нужно полностью задавать все цифры ESC-последовательности (три цифры для восьмеричной и две цифры для шестнадцатеричной ESC-последовательностей).

Иначе, если символ, непосредственно следующий за ESC-последовательностью, случайно окажется восьмеричной или шестнадцатеричной цифрой, то он проинтерпретируется как часть последовательности. Например, строка \x7Bell при выводе на печать будет выглядеть как {ell, поскольку \x7B проинтерпретируется как символ левой фигурной скобки ({). Строка \x07Bell будет правильным представлением символа «звонок» с последующим словом Bell.

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

Наклонная черта влево (\) помимо определения ESC-последовательностей используется так же, как символ продолжения строки в препроцессорных определениях. Если символ «новая строка» следует за наклонной чертой влево, то новая строка игнорируется и следующая строка рассматривается, как часть предыдущей строки.


Вывод

Прежде всего, давайте напишем программу, выводящую строку выдачи:

#include
main ()
{ cout << "Привет, информатик!\n"; }


Строка #include сообщает компилятору, чтобы он включил стандартные возможности потока ввода и вывода, находящиеся в файле stream.h. Без этих описаний выражение cout << "Привет, информатик!\n" не имело бы смысла. Операция << («поместить в») пишет свой первый аргумент во второй (в данном случае, строку "Привет, информатик\n" в стандартный поток вывода cout).

Строка – это последовательность символов, заключённая в двойные кавычки. В строке символ \ (обратная косая черта), за которым следует другой символ, обозначает один специальный символ; в данном случае, \n является символом новой строки. Таким образом выводимые символы состоят из Привет, информатик! и перевода строки.

Остальная часть программы

main() { ... }

определяет функцию, названную main. Каждая программа должна содержать функцию с именем main, и работа программы начинается с выполнения этой функции.

Функция printf() является функцией стандартного вывода. С помощью этой функции можно вывести на экран монитора строку символов, число, значение переменной. Функция printf() имеет прототип в файле stdio.h:

int printf (char *управляющая строка, ...);

В этом случае функция printf() возвращает число выведенных символов.

Управляющая строка содержит два типа информации: символы, которые непосредственно выводятся на экран, и спецификаторы формата, определяющие, как выводить аргументы.

Функция printf() – это функция форматированного вывода. Это означает, что в параметрах функции необходимо указать формат данных, которые будут выводиться. Формат данных указывается спецификаторами формата. Спецификатор формата начинается с символа %, за которым следует код формата:
%с символ

%d целое десятичное число
%i целое десятичное число
%e десятичное число в виде x.xx e+xx
%E десятичное число в виде x.xx E+xx
%f десятичное число с плавающей запятой xx.xxxx
%F десятичное число с плавающей запятой xx.xxxx
%g %f или %e, что короче
%G %F или %E, что короче
%o восьмеричное число
%s строка символов
%u беззнаковое десятичное число
%x шестнадцатеричное число
%X шестнадцатеричное число
%% символ %
%p указатель
%n указатель

К командам формата могут быть применены модификаторы l и h:

%ld печать long int
%hu печать short unsigned
%lf печать long double

В спецификаторе формата, после символа % может быть указана точность (число цифр после запятой). Точность задается следующим образом: %.n<код формата>, где n – число цифр после запятой, а <код формата> – один из кодов, приведенных выше.

 

 


© Сибирская государственная геодезическая академия (СГГА), 2011