Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Управляющие последовательности⇐ ПредыдущаяСтр 16 из 16 Давайте рассмотрим еще один пример, связанный с выводом, в котором используются специальные управляющие последовательности для символов языка С. В частности, программа, представленная в листинге 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 в год.
|