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

Перевод строки

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

Если вы хотите перевести курсор на следующую строку, вы должны добавить в строку формата управляющий код «новая строка» \n:

printf("Стоимость составляет %f за %d штук\n", amount, count);

Управляющий код \n помещают там, где хотят начать новую строку (не обязательно в конце строки формата), например, в результате выполнения инструкции

printf("Стоимость составляет %f\n за %d штук\n", amount, count);

на экране появятся две строки:

Стоимость составляет 45.580000 за 5 штук

и

Стоимость составляет 45.580000

за 5 штук

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

Преобразование типов данных

В Си существует два дополнительных указателя формата, с помощью которых можно переводить данные типа int из десятичной в восьмеричную и шестнадцатеричную системы счисления:

%o

перевод в восьмеричную систему, используйте только маленькую букву о, не цифру 0

%x

перевод в шестнадцатеричную систему

Для того чтобы перевести число из десятичной в другую систему счисления, надо поместить код %o или код %x в строку формата, при этом в список данных вносится число, записанное в десятичной системе. В качестве примера приведена программа, отображающая число17 в шестнадцатеричной и восьмеричной системах счисления:

main()

{

printf("%d равно %x в шестнадцатеричной и %o в \

восьмеричной системах счисления\n", 17, 17, 17);

// так в Си и Си++ можно переносить

// длинные строки символов,

// заключенные в двойные кавычки (ред.)

}

Результат работы программы выглядит следующим образом:

17 равно 11 в шестнадцатеричной и 21

в восьмеричной системах счисления

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

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

При описании функции putchar() уже говорилось, что символьные переменные могут быть заданы и как целочисленные. Следовательно, можно присвоить букву в качестве значения переменной типа int и вывести ее на дисплей при помощи функции putchar() или printf():

main()

{

int a;

a = 'A';

putchar(a);

putchar('\n');

printf("%c", a);

}

При выполнении этой программы символ А появится дважды: один раз как символ, отображенный функцией putchar(), второй раз как символ, отображенный функцией printf() с использованием указателя формата %c. Независимо от того, определен тип переменной как char или int, можно преобразовать символ в его ASCII-код:

main()

{

char a;

a = 'A';

printf("ASCII-код символа %c равен %d", a, a);

}

В этом примере одно и то же значение переменной выводится на дисплей с использованием указателей формата %c и %d. В результате получаем следующее сообщение:

ASCII-код символа А равен 65

где присутствует символ А, отображенный с использованием указателя формата %c, и число 65, являющееся ASCII-кодом символа А, выведенное с помощью указателя формата %d.

Программа будет работать точно так же, и в результате мы получим ту же фразу, если переменная а будет определена как int.