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

Управляющие коды

Вы можете управлять перемещением курсора на экране и выполнять некоторые другие функции, используя специальные коды, называемые escape-последовательностями (escape sequences). Каждая последовательность начинается с символа обратной наклонной черты (\), который указывает на то, что символы, расположенные за ним, являются escape-символами (escape character). Обратная косая черта и escape-символы выражают операцию, которую вы хотите произвести. Когда компилятор встречает обратную косую черту, он не отображает следующие символы, а выполняет действие, на которое они указывают.

Код «новая строка»

Последовательность \n, называемая кодом «новая строка», перемещает курсор в начальную позицию следующей строки. Используйте код «новая строка» после вывода на экран символа с помощью функции putchar(). Если вы напишете следующие инструкции:

putchar('A');

putchar('\n');

то на экране отобразится символ A, а затем курсор перейдет в начало следующей строки. Отметим, что последовательность \n, как и другие символы, передаваемые функции putchar() в качестве параметра, заключена в одинарные кавычки. Так как буква n следует за обратной косой чертой, компилятор обеспечит перевод строки, а не станет отображать этот символ на экране.

При вызове функции puts() вы можете комбинировать escape-последовательность с символами внутри кавычек. Инструкция

puts("Уильям Уотсон\n");

отобразит имя Уильяма Уотсона на экране, а затем поместит курсор в начало следующей строки. Код «новая строка» должен находиться внутри кавычек.

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

  1. Отображается имя Уильяма Уотсона.

  2. Код \n обеспечивает выполнение escape-последовательности «новая строка», перемещая курсор в начальную позицию строки, расположенной под именем.

  3. Выполнение функции puts() завершается. Если ваш компилятор добавляет перевод строки автоматически, то курсор будет перемещен вниз еще на одну строку.

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

puts("A\nB\nC");

отобразит на экране три строки текста:

A

B

C

Почему? Последовательность действий такова: компилятор отобразит символ А, переместит курсор в начало новой строки, отобразит символ B, переместит курсор в начало следующей строки и отобразит символ C. Если ваш компилятор добавляет перевод строки автоматически, то курсор будет переведен еще на одну строку ниже символа C.

Код «табуляция»

Код «табуляция» \t перемещает курсор в следующую позицию табуляции экрана. Чтобы посмотреть, как работает код «табуляция», воспользуемся следующей программой:

main()

{

puts("123456789012345678921234567893123456789412345\n");

puts("0\t1\t2\t3\t4\t5\n");

}

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

123456789012345678921234567893123456789412345

0 1 2 3 4 5

Код «табуляция» можно использовать для создания выровненных колонок текста или чисел, например, так:

main()

{

puts("Друзья, суммы долгов и сроки задолженностей:\n");

puts("Алан\t\tДжефф\t\tНэнси\t\tТом\n");

puts("$1.50\t\t$2.45\t\t$6.24\t\t$3.56\n");

puts("10 дней\t\t5 дней\t\t15 дней\t\t1 день\n");

}

Результат работы этой программы представлен на рис.4.1. Заметьте, что мы использовали по два кода «табуляция» между колонками, чтобы отчетливо разделить их на экране. Также обратите внимание на отсутствие пробелов между кодом «табуляция» и следующим за ним текстом, так как любые дополнительные пробелы отобразятся на экране, и колонки не будут выровнены правильно.

Рис. 4.1. Результаты работы программы, использующей коды «табуляция»