- •Объявления и инициализация переменных. Стандартные типы данных.
- •Операции ввода-вывода.
- •Консольный ввод-вывод.
- •Printf(”форматная_строка”[, значение1][, значение2][, ...]);
- •Printf("Мне нравится язык %c %s", 'c', "и к тому же очень сильно!");
- •Мне нравится язык c и к тому же очень сильно!
- •Значение 5-й переменной равно 1.500000
- •%[Ширина][.Точность][h/l/l]буква согласно типу выводимого значения
- •I nt main(){
- •Int main()
- •Int main(void){
- •Int main(){
- •Scanf("форматная_строка", &перем1[, &перем2][, ...]);
- •Scanf("%c%c%c", &a, &b, &c);
- •Int main()
- •У пражнения
- •Int main()
- •Int main()
Scanf("форматная_строка", &перем1[, &перем2][, ...]);
Аргументы (параметры) функции scanf во многом аналогичны соответствующим аргументам printf, за исключением того, что в качестве дополнительных параметров scanf принимает не имена переменных, а их адреса. В силу этого перед именем каждой переменной в scanf должен стоять знак операции взятия адреса & (амперсанд).
В момент передачи управления функции scanf выполнение программы приостанавливается в ожидании ввода от пользователя. Вся вводимая с клавиатуры информация отображается на экране (эхо-вывод). Во время ввода пользователю доступны простейшие возможности редактирования, в частности клавиша забоя Backspace. Выполнение оператора завершается, как только пользователь нажимает клавишу Enter. Введенная информация при этом будет приведена к соответствующему типу и записана в переменную.
Рассмотрим несколько примеров.
Для ввода целого значения без знака используется спецификатор формата %d.
Н
апример,
операторы
int num;
scanf("%d", &num);
выполняют считывание целого числа и присваивание его переменной num.
Одиночные символы можно прочитать с помощью функции scanf() со спецификатором формата %c. При чтении одиночного символа символы разделителей читаются так же, как и любой другой символ, хотя при чтении данных других типов разделители интерпретируются как разделители полей.
Н апример, при вводе с входного потока "x y" фрагмент кода
Scanf("%c%c%c", &a, &b, &c);
помещает символ 'x' в a, пробел – в b, а символ 'y' – в c.
Для чтения из входного потока строки можно использовать функцию scanf() со спецификатором преобразования %s. Использование спецификатора преобразования %s заставляет scanf() читать символы до тех пор, пока не встретится какой-либо разделитель. Читаемые символы помещаются в символьный массив, на который указывает соответствующий аргумент, а после введенных символов еще добавляется символ конца строки ('\0'). Что касается scanf(), то таким разделителем может быть пробел, разделитель строк, табуляция, вертикальная табуляция или подача страницы. Это означает, что scanf() нельзя использовать для чтения строки "это испытание", потому что после пробела процесс чтения прекратится. Чтобы увидеть, как действует спецификатор %s, попробуйте при выполнении этой программы ввести строку "привет всем":
Int main()
{
char str[80];
printf("Введите строку: ");
scanf("%s", str);
printf("Вот Ваша строка: %s", str);
return 0;
}
Программа выведет только часть строки, то есть слово "привет".
У пражнения
Рассмотрите следующий пример работы с функциями консольного ввода-вывода. Выполните программу в среде разработки. Пронаблюдайте влияние модераторов h, l, L при чтении и выводе данных.
Int main()
{
c
har
c1; //
short s1; //
int i1; //
long L1; //
float f1; //
double d1; //
printf("input char >"); scanf("%c", &c1); printf(" %c\n", c1); //
printf("input short>"); scanf("%hd", &s1); printf(" %hd\n", s1); //
printf("input int >"); scanf("%d", &i1); printf(" %d\n", i1); //
printf("input long >"); scanf("%ld", &L1); printf(" %ld\n", L1); //
printf("input float>"); scanf("%f", &f1); printf(" %f\n", f1); //
printf("input double>"); scanf("%lf", &d1);printf(" %lf\n", d1); //
return 0; // Завершение программы
}
Рассмотрите следующий пример работы с функциями консольного ввода-вывода. Выполните программу, выводящую на экран символы звездочки '*' в форме ромба, как это показано на рисунке справа.
Задача может быть решена несколькими способами. Ниже приводится один из вариантов.
# include <stdio.h> // Подключаем библиотеку
// консольного ввода-вывода
