Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Управляющие последовательности





Давайте рассмотрим еще один пример, связанный с выводом, в котором используются специальные управляющие последовательности для символов языка С. В частности, программа, представленная в листинге 3.10, демонстрирует работу символов возврата на одну позицию влево (\Ь), табуляции (\t) и возврата каретки (\г). Их концепции существуют со времен, когда компьютеры применяли для вывода телетайпы, и они не всегда успешно транслируются в современных графических интерфейсах. Например, код в листинге 3.10 не работает описанным здесь образом в некоторых реализациях для компьютеров Macintosh.

Листинг 3.10. Программа escape.с

/* escape.c -- uses escape characters */

#include <stdio.h>

int main(void)

{

float salary;

 

printf("\aEnter your desired monthly salary:");/* 1 */

printf(" $_______\b\b\b\b\b\b\b"); /* 2 */

scanf("%f", &salary);

printf("\n\t$%.2f a month is $%.2f a year.", salary,

salary * 12.0); /* 3 */

printf("\rGee!\n"); /* 4 */

 

return 0;

}

Результаты выполнения программы

Давайте пошагово пройдемся по этой программе и посмотрим, как она будет рабо­тать в системе, где управляющие последовательности ведут себя описанным образом. (Фактическое поведение может отличаться. Например, XCode 4.6 отображает симво­лы \а, \b и \r в виде перевернутых вопросительных знаков!)

Первый оператор printf () (помечен номером 1) воспроизводит звуковой сигнал (вызванный последовательностью \а), а затем выводит следующую фразу:

Введите желаемую сумму месячной зарплаты:

Поскольку в конце строки отсутствует последовательность \n, курсор устанавлива­ется в позицию, следующую за двоеточием.

Второй оператор printf () начинает вывод с позиции, где остановился первый оператор, поэтому после его выполнения вывод на экране выглядит так:

Введите желаемую сумму месячной зарплаты: $

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

В этом месте вы вводите с клавиатуры свой ответ, скажем, 4000.00. Теперь строка принимает следующий вид:

Введите желаемую сумму месячной зарплаты: $4000.00

Вывод третьего оператора printf () начинается с \n\t. Символ новой строки перемещает курсор в начало следующей строки. Символ табуляции перемещает курсор в следующую позицию табуляции в этой строке — обычно, но не обязательно, в позицию 9. Затем выводится оставшаяся часть строки. После выполнения этого оператора экран выглядит так:

Введите желаемую сумму месячной зарплаты: $4000.00

$4000.00 в месяц соответствует $48000.00 в год.

Поскольку в этом операторе printf () символ новой строки не используется, курсор остается непосредственно после завершающей точки.

Четвертый оператор printf () начинается с последовательности \r. Она помеща­ет курсор в начало текущей строки. Затем отображается строка “Ого!” и последовательность \n переводит курсор на следующую строку.

Окончательный вывод на экране имеет следующий вид:

Введите желаемую сумму месячной зарплаты: $4000.00

Ого! $4000.00 в месяц соответствует $48000.00 в год.

Date: 2015-12-13; view: 358; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию