Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ОИиП под ред Бусько.DOC
Скачиваний:
22
Добавлен:
11.05.2015
Размер:
733 Кб
Скачать
☆

Операторы вывода информации

Для вывода информации в языке С используются функции: printf, puts,.

Формат функции printf:

printf(<управляющая строка >,<элемент 1>,<элемент 2 >,…);

Управляющая строка -- строка символов, показывающая, как должны быть напечатаны объекты вывода (это фраза в кавычках).

<элемент 1>,<элемент 2 >,…-печатаемые объекты: переменные, константы или выражения, вычисляемые перед выводом на печать.

В управляющей строке указывают:

1. Формат, указывающий компилятору вид выводимой информации, признаком формата является символ %.

Ниже приведены основные форматы функции печати:

Формат Тип выводимой информации

%d Десятичное целое число

%c Один символ

%s Строка символов

%e Число с плавающей точкой (экспоненциальная запись)

%f Число с плавающей точкой (десятичная запись)

%g Используется вместо записей %f или %e, если он короче

%u Десятичное число без знака

%o Восьмеричное число без знака

%x Шестнадцатеричное число без знака

Для чисел long -- модификатор l. Например, %ld -- длинное целое, %lf – число вещественное с удвоенной точностью.

Пример

#include <stdio.h>

#define PI 3.14159

main()

{

int number=5;

float bat=255;

int cost=11000;

printf("%d студентов съели %f бутербродов.\n",number,but);

printf("Значение числа pi равно%f.\n",pi);

printf("Любовь и голод правят миром.\n");

printf("Стоимость этой вещи %d%S.\n",cost,"Руб.");

}

Если же нужно напечатать сам символ % , то его нужно указать 2 раза.

printf("Только %d%% предприятий не работало.\n",5);

Получим: Только 5% предприятий не работало.

2. Управляющие символы:

\n – переход на новую строку; \t – горизонтальная \v – вертикальная табуляция; \b – возврат назад на один символ; \r – возврат в начало строки; \f – прогон бумаги до начала новой страницы; \a – звуковой сигнал; \ddd – 8-ричный ASCII-код; \xhhh – 16-ричный код; \? – знак вопроса.

Сокращение ASCII – Американский стандартный код обмена информацией.

3. Модификаторы формата, используемые в функции printf().

Этот аргумент будет печататься с левой позиции поля, заданной ширины, например: % - 10d. Строка цифр -- задает минимальную ширину поля. Если этой ширины не хватает, происходит автоматическое расшире­ние: %4d или %5s %4.2f (две десятичные цифры для поля, шириной 4 сим­вола).

Функция puts выводит на экран дисплея строку символов, автоматически добавляя к ней символ перехода на начало новой строки. Функция putchar выдает на экран дисплея один символ (без добавления символа “\n”).

Функция scanf предназначена для ввода исходной информации.

Общий вид этой функции такой:

scanf (<управляющая строка>,<адрес 1>,<адрес 2>,…);

Для нее также как и для printf(), указываются управляющая строка и следующий за ней список аргументов. Но если функция printf() использует имена переменных, константы и выражения, то scanf() использует только указатели на переменные, т.е. их адреса.

Таким образом, для ввода некоторого значения и присвоения его переменной одного из основных типов перед именем переменной требуется указать символ &, обозначающий адрес переменной (указатель на переменную).

Если же нужно ввести значение строковой переменной, то использовать символ & не нужно, так как строка - это массив символов, а имя массива эквивалентно адресу его нулевого элемента, т.е. его базовому адресу.

Данную особенность иллюстрирует следующий участок программы:

int course;

float grant;

char name[20];

printf ( " укажите ваш курс, стипендию, имя \n");

scanf ( "%d%f",& course, & grant);

scanf ( "%s", name); /* & отсутствует при указании массива символов*/

Вводить данные можно как в одной строке через пробелы, так и в разных строках.

Функция scanf() использует практически тот же набор символов спецификации преобразования, что и функция printf().

Основные отличия функции scanf():

  1. Отсутствует спецификация %g.

2. Спецификации %f и %e эквивалентны. Обе спецификации допускают наличие (или отсутствие) знака, строки цифр с десятичной точкой или без нее и поля показателя степени.

3. Для чтения целых чисел типа short применяется спецификация %h.

Следует отметить, что функция scanf() вводит строки через формат %s только до первого пробела. Для ввода фраз, состоящих из слов, нужно использовать функцию gets(<имя строковой переменной>).