Студопедия

КАТЕГОРИИ:

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






Функция форматного ввода

Читайте также:
  1. D) Осы кесіндіде функция шенелген болуы керек
  2. Return x; нет этой инструкции, ведь функция так ничего не вернет!
  3. А) - функциялары аралығында сызықты тәуелсіз және олардың әрқайсысы көрсетілген біртекті теңдеудің шешімдері
  4. А) Ряд, многоугольник и функция распределения случайной дискретной величины
  5. А) Ряд, многоугольник и функция распределения случайной дискретной величины
  6. А) Ряд, многоугольник и функция распределения случайной дискретной величины
  7. Автокорреляционная функция
  8. Аржы нарығы, экономиканы дамытудағы оның маңызы. Қаржы нарығының функциялары
  9. Аржылардың функциялары
  10. Арифметические операции над непрерывными функциями. Композиция непрерывных функций

Гораздо более сложным для начинающих программистов является ввод данных, организуемый с помощью функции scanf, использующей так называемую форматную строку:

Общий вид записи функции ввода scanf

scanf(" форматная строка ", cпиcoк адресов переменных);

форматы ввода адреса вводимых переменных

Форматы ввода - это строка в кавычках, в которой перечислены один или несколько форматов (спецификаторов) ввода данных (% - признак спецификатора):

%d - ввод целого числа ( для переменной типа int)

%f - ввод вещественного числа ( для переменной типа float)

- ввод одного символа ( для переменной типа char)

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

a - значение переменной a

&a - адрес переменной a

Например:

#include "stdafx.h"

int main(){ int p; float k; double m;.......... scanf("%d %f %lf",&p,&k,&m);..........}

Для обеспечения форматного ввода к программе следует подключить заголовочный файл stdio.h. Строка вводимых данных поступает со стандартного устройства ввода (stdin), которым по умолчанию считается клавиатура. Завершение набора строки ввода - нажатие клавиши Enter.

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

В приведенном примере переменной p (в списке ввода указан ее адрес - &p), объявленной с помощью спецификатора типа int, соответствует спецификатор %d. Это означает, что первым числовым значением, набранным на клавиатуре, может быть только целое десятичное число со знаком (d - от decimal, десятичный). Вещественной переменной k типа float в форматной строке соответствует формат %f. Это означает, что второе числовое значение в строке ввода должно принадлежать диапазону, предусмотренному для коротких вещественных данных. Для переменной m типа double использован формат %lf (l (это буква эль)- от long).

Количество форматов в строке должно быть равно количеству адресов в списке.

Кроме того, тип переменных должен совпадать с указанным форматом: например, если a и b - целые переменные, то следующие вызовы функций ошибочны



scanf ( "%d %d", &a );

неясно, куда записывать второе введенное число;

scanf ( "%d %d", &a, &b, &c );

переменная c не будет введена, так как для нее не задан спецификатор;

scanf ( "%f %f", &a, &b );

нельзя вводить целые переменные по вещественному формату.

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

Пример ввода:

Пусть в задаче определены следующие исходные данные:

а = 4; х = 3,8; у =1,2*104; к=5; т = 74

Оператор ввода:

scanf("%d %f %f %d %d", &a, &х, &у, &k, &m);

вызывает чтение данных с клавиатуры, набранных следующим образом:

4 3.8 1.2Е4 5 74 [Enter]

%d %f %f %d %d - такой список форматов будет соответствовать следующему описанию переменных в программе:

main()

{ int a,k,m;

float x,y;


Дата добавления: 2014-11-13; просмотров: 34; Нарушение авторских прав


<== предыдущая лекция | следующая лекция ==>
Линейные вычислительные процессы | Форматный вывод
lektsii.com - Лекции.Ком - 2014-2017 год. (0.013 сек.) Главная страница Случайная страница Контакты