АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Ввод и вывод информации

Читайте также:
  1. Автоматизированная информационная поисковая система правовой информации
  2. Алгоритм проверки адекватности множественной регрессионной модели (сущность этапов проверки, расчетные формулы, формулировка вывода).
  3. Алфавитный подход к измерению информации.
  4. Алфавитный подход к измерению информации.
  5. Анализ диаграмм внешней передачи информации
  6. Аппаратные средства защиты информации
  7. Аттестация объектов информации
  8. Базовый порт ввода/вывода
  9. Блок 3. Кодирование информации.
  10. В-третьих - какие бы не были выводы, их всегда можно и нужно осмыслить.
  11. В12. Поиск информации в базе данных по сформулированному условию
  12. В13. Знание о дискретной форме представления числовой, текстовой, графической и звуковой информации.

Форматный вывод

Вначале рассмотрим функцию, определяющую форматный вывод:

printf("управляющая строка", аргумент1, аргумент2,...);

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

Каждая спецификация преобразования начинается со знака % и заканчивается некоторым символом, задающим преобразования.

Символ преобразования связан с типом переменных. приведем символы преобразования:

1) d – значением аргумента является десятичное целое число;

2) o – значением аргумента является восьмеричное целое число;

3) x – значением аргумента является шестнадцатеричное целое число;

4) c – значением аргумента является символ;

5) s – значением аргумента является строка символов;

6) e – значением аргумента является вещественное число в экспоненциальной форме;

7) f – значением аргумента является вещественное десятичное число с фиксированной точкой;

8) u – значением аргумента является беззнаковое целое число;

9) p – значением аргумента является указатель (адрес).

Если после знака % записан не символ, то он выводится на экран. Функция printf использует управляющую строку, чтобы определить, сколько всего аргументов и каковы их типы.

Например, в результате работы программы получены переменная i, имеющая значение 100, и переменная j, имеющая значение 25. Обе переменные целого типа. Для вывода этих переменных на экран в виде

i=100 j=25

необходимо применить функцию

printf(“i=%d j=%d”,i,j);

Как было описано выше, в кавычках задается формат вывода. перед знаком % записываются символы, которые будут непосредственно выданы на экран. После знака % применена спецификация d, т.к. переменные i и j имеют целый тип. Сами i и j приведены через запятую в списке аргументов. Если результат должен быть представлен в виде

i=100; j=25

необходимо применить функцию

printf(“i=%d; j=%d”, i, j);

Если после знака % стоит цифра, то она задает поле, в котором будет выполнен вывод числа. Приведем несколько функций printf, которые будут обеспечивать вывод одной и той же переменной S целого типа, имеющей значение 336.

Функция printf(“%2d”, S);

выдает на экран:

В этом примере ширина поля (она равна двум) меньше, чем число цифр в числе 336, поэтому поле автоматически расширяется до необходимого размера.

Функция printf(“%6d”, S);

выдаст на экран:

_ _ _336

(6 позиций)

То есть, в результате работы функции число сдвинуто к правому краю поля, а лишние позиции перед числом заполнены пробелами.

Функция printf(“%-6d”, S);

выдаст на экран:

336_ _ _

(6 позиций)

Знак «минус» перед спецификацией приводит к сдвигу числа к левому краю поля.

Рассмотрим вывод вещественных чисел.

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

Рассмотрим на конкретном примере три возможные ситуации:

%6f – печать числа с плавающей точкой в поле из шести позиций;

%.2f – печать числа с плавающей точкой с двумя цифрами после десятичной точки;

%6.2f – печать числа с плавающей точкой в поле из шести позиций и двумя цифрами после десятичной точки.

Например, в результате работы программы получены переменные вещественного типа а=3,687 и b=10,17.

Если для вывода значений использована функция

printf(“%7f %8f”,a,b);

то результат будет представлен в виде строки:

_ _ 3.687 _ _ _ _10.17

(7 поз.) (8 позиций)

 

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

printf(“%.2f %.2f”, a, b);

то результатом будет строка:

3.69 10.17,

из которой следует, что в первом числе третья цифра после десятичной точки отброшена с округлением, т.к. указан формат числа с двумя цифрами после десятичной точки.

Если для вывода значений использована функция

printf(“%7.2f %e”,a,b);

то будет выведена строка:

_ _ _ 3.69 1.017000е+01

(7 позиций)

Поскольку для вывода значения переменной b применена спецификация е, то результат выдан в экспоненциальной форме. Следует отметить, что, если ширина поля меньше, чем число цифр в числе, то поле автоматически расширяется до необходимого размера.

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

1) \a – для кратковременной подачи звукового сигнала;

2) \b – для перевода курсора влево на одну позицию;

3) \n – для перехода на новую строку;

4) \r – для перевода курсора в начало текущей строки;

5) \t – для горизонтальной табуляции;

6) \v – для вертикальной табуляции.

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

printf(“\t ЭВМ\n%d\n”,i);

сначала выполнится горизонтальная табуляция (\t), т.е. курсор сместится от края экрана на 8 позиций, затем на экран будет выведено слово “ЭВМ”, после этого курсор переместится в начало следующей строки (\n), затем будет выведено целое значение i по формату d, и окончательно курсор перейдет в начало новой строки (\n). Таким образом, результат работы этой функции на экране будет иметь вид:

_ _ _ _ _ _ _ _ ЭВМ

 

Ввод данных

 

Для форматного ввода данных используется функция

scanf(«управляющая строка», аргумент1, аргумент2,...);

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

Управляющая строка содержит спецификации преобразования и используется для установления количества и типов аргументов. спецификации для определения типов аргументов такие же, как и для функции printf. Перед символами d,o,x,f может стоять буква l. В первых трех случаях соответствующие переменные должны иметь тип long, а в последнем double.

Рассмотрим пример. Требуется ввести значения для переменных i (целого типа) и a (вещественного типа). Эту задачу выполнит функция:

scanf(“%d%f”,&i,&a);

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

В языке СИ есть две очень удобные функции puts и gets, позволяющие вводить и выводить строку символов. Пример их использования показан ниже:

#include<stdio.h>

main()

{

char q[40]; /*объявление строки символов*/

puts(“Введите строку символов”);

gets(q); /*ввод строки символов*/

puts(q); /*вывод строки символов*/

}

В результате работы программы вначале на экране появится текст:

Введите строку символов,

после чего следует ввести какую-либо строку символов. Эта информация при помощи оператора gets будет присвоена элементам символьного массива q. Оператор puts выведет строку символов.

 


1 | 2 | 3 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)