Функция стандартного ввода scanf()

Функция scanf() - функция форматированного ввода. С её помощью вы можете вводить данные со стандартного устройства ввода (клавиатуры). Вводимыми данными могут быть целые числа, числа с плавающей запятой, символы, строки и указатели.

Функция scanf() имеет следующий прототип в файле stdio.h:
int scanf(char *управляющая строка);

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

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

Спецификаторы формата:

%c чтение символа
%d чтение десятичного целого
%i чтение десятичного целого
%e чтение числа типа float (плавающая запятая)
%h чтение short int
%o чтение восьмеричного числа
%s чтение строки
%x чтение шестнадцатеричного числа
%p чтение указателя
%n чтение указателя в увеличенном формате

При вводе строки с помощью функции scanf() (спецификатор формата %s), строка вводиться до первого пробела!! т.е. если вы вводите строку "Привет мир!" с использованием функции scanf()

char str[80]; // массив на 80 символов
scanf("%s",str);

то после ввода результирующая строка, которая будет храниться в массиве str будет состоять из одного слова "Привет". ФУНКЦИЯ ВВОДИТ СТРОКУ ДО ПЕРВОГО ПРОБЕЛА! Если вы хотите вводить строки с пробелами, то используйте функцию

char *gets(char *buf);

С помощью функции gets() вы сможете вводить полноценные строки. Функция gets() читает символы с клавиатуры до появления символа новой строки (\n). Сам символ новой строки появляется, когда вы нажимаете клавишу enter. Функция возвращает указатель на buf. buf - буфер (память) для вводимой строки.

Хотя gets() не входит в тему этой статьи, но всё же давайте напишем пример программы, которая позволяет ввести целую строку с клавиатуры и вывести её на экран.

#include <stdio.h>

void main(void)
{
char buffer[100]; // массив (буфер) для вводимой строки

gets(buffer); // вводим строку и нажимаем enter
printf("%s",buffer); // вывод введённой строки на экран
}

Ещё одно важное замечание! Для ввода данных с помощью функции scanf(), ей в качестве параметров нужно передавать адреса переменных, а не сами переменные. Чтобы получить адрес переменной, нужно поставить перед именем переменной знак &(амперсанд). Знак & означает взятие адреса.

Что значит адрес? Попробую объяснить. В программе у нас есть переменная. Переменная хранит своё значение в памяти компьютера. Так вот адрес, который мы получаем с помощью & это адрес в памяти компьютера где храниться значение переменной.

11) Условный оператор if-else в C++

Если вопрос касается задач разветвляющегося процесса, то здесь необходимо использовать условный оператор if-else. В этой статье вы узнаете, как работает условный оператор if-else в C++ и разберем одну задачу на эту тему.

Допустим, у нас имеется задача, в которой нужно определить какое из трех чисел введенных с клавиатуры является самым большим? Для решения такой задачи нам как раз таки и понадобится использование условного оператор if-else.

В общем виде этот оператор выглядит так:

Если у нас «условие» является истинным выражением или значением, то выполняется оператор_1 иначе, если у нас «условие» ложно, то выполняется оператор_2.

А если мы хотим задать группу операторов для истинного или ложного условия? Тогда это будет выглядеть так:

При условии если у нас имеется группа операторов, то их мы помещаем в фигурные скобки.

А теперь задачка:

Решение:

Эту задачу можно решать по крайне мере двумя способами. И сейчас я вам о них расскажу.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: