Универсальные функции ввода и вывода любых типов данных

Scanf и printf

scanf вводит данные из stdin в форматированном виде.

Синтаксис вызова:

scanf(arg1, arg2...);

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

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

Основные спецификации формата:

%d – десятичное условие типа int.

%i – int (в любой системе счисления).

%u – unsigned.

%ld – long.

%c –один символ.

%s –строка символов без пробелов внутри (слово).

%f - float.

%lf – double.

%p –для вывода адреса переменной.

%e –для вывода очень больших или очень маленьких данных с десятичной точкой в экспоненциальной форме.

arg2... –адрес переменных, по которым записывается данное. При вводе строки символов & не пишется – только имя строки. Количество адресов совпадает с количеством спецификаций. В качестве результата функция возвращает качество результата операций качеством успешных операций. Например:

int a;

float b;

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

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

Например:

printf(“Ваши данные - %d и %f\n”, a,b);

Структуры и форма написания программы

Программы состоят из одной или нескольких функций, среди которых обязательно есть функция main. Любая функция состоит из заголовка и тела функции. Заголовок функции состоит из директивы препроцессора и имени функции. # include <iostream>. при выполнении директивы includeсодержание указанного файла будет вставлено в текст программы вместо самой директивы.

Имя функции mainпишется стандартным образом:

int main (void)

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

Форма написания программы. Текст пишется маленькими латинскими буквами, большие буквы используются в именах переменных и константах.

Задача. Фокусное расстояние собирающей линзы F = 30 см, расстояние предмета от фокуса l = 10 см, линейные размеры предмета h = 5 см. Определить размеры изображения по формуле Универсальные функции ввода и вывода любых типов данных - student2.ru

Программа будет строиться в виде проекта, состоящего из файлов:

– main.cpp – файл с текстом функции main;

– Rus.cpp – файл с текстом функции Rus;

– Rus.h – файл с прототипом функции Rus.

Полный текст программыбудет выглядеть так:

//содержимое файла main.cpp

#include<iostream> //подключение системных средств для

using namespace std; //возможности использовать потоки ввода-вывода

#include "Rus.h" //прототип функции русификации

int main(void) //имя функции main

{

double focus, distance, size, h; //объявили переменные

//здесь и далее: приглашение к вводу, текст выводится на экран монитора //отдельной строкой

cout<<Rus("\n Введите фокусное расстояние ");

//ввод исходного данного с клавиатуры в переменную focus

cin>>focus;

cout<<Rus("Введите расстояние предмета от фокуса ") ;

cin>>distance;

cout<<Rus("Введите размеры предмета ");

cin>>size;

//вычисление по формуле, результат помещается в h

h=focus*size/distance;

//вывод результата из переменной h на монитор с комментарием

//в одном операторе Rus вызываем один раз

cout<<Rus("Размеры изображения ")<<h ;

cout<<Rus("см\n");

//оператор return завершает работу функции main

return 0;

}

//содержимое файла Rus.cpp

#include<windows.h>

char bufrus[256];

char*Rus(const char*text)

{

CharToOemA(text, bufrus);

return bufrus;

}

//содержимое файла Rus.h

#ifndef RUS_H

#define RUS_H

char*Rus(const char*text);

#endif

Примечание. В последующих примерах будут приводиться тексты только функции main. Использование функции Rus будет опускаться, так как это не относится к самому языку С++, а к особенностям среды программирования VS2008.

Наши рекомендации