Студопедия — Форматный ввод
Студопедия Главная Случайная страница Обратная связь

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

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






Гораздо более сложным для начинающих программистов является ввод числовых данных, организуемый с помощью функции 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-12; просмотров: 919. Нарушение авторских прав; Мы поможем в написании вашей работы!



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

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

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

Важнейшие способы обработки и анализа рядов динамики Не во всех случаях эмпирические данные рядов динамики позволяют определить тенденцию изменения явления во времени...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

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

ОСНОВНЫЕ ТИПЫ МОЗГА ПОЗВОНОЧНЫХ Ихтиопсидный тип мозга характерен для низших позвоночных - рыб и амфибий...

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия