Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб_практикум_ч1_2007.DOC
Скачиваний:
15
Добавлен:
10.11.2019
Размер:
379.9 Кб
Скачать

Функция ввода данных scanf()

Функция scanf() является одной из многих функций форматного ввода, имеющихся во внешних библиотеках. Функция scanf() в качестве фактических параметров использует адреса переменных, а не их значения. Для этого перед соответствующим параметром ставят знак & - символ взятия адреса. Например, означает "адрес переменной а", а не значение, которое переменная имеет в данный момент. Перед именем строки & не указывается, поскольку имя строки совпадает с ее адресом.

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

Пример:

#include <stdio.h>

#include <conio.h>

main()

{ int weight, /*вес*/

height; /*рост*/

printf(" Введите ваш вес: ");

scanf("%d", &weight);

printf(" Введите ваш рост: ");

scanf("%d", &height);

printf("\n\n Вес = %d, рост = %d\n", weight,height);

getch();

}

В общем случае параметры функции scanf ( ) имеют вид:

scanf ("управляющая строка" [ , список аргументов ])

Спецификация преобразования записывается в виде:

% [Флаг] [w] f

  • Флаг * - допустимый признак гашения присваивания, при котором значение пропускается;

  • W - максимальная ширина поля ввода,

  • F - формат преобразования, аналогичный преобразованию при выводе (не используется формат g, определен формат h для данных типа short).

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

Пример:

# include <stdio.h>

#include <conio.h>

main( )

{

int i; /* целая переменная, 2 байта */

char c, cs[20]; /*символьная переменная c 1 байт и строка cs*/

short x; /* короткая целая, 2 байта */

long y; /* длинная целая, 4 байта */

unsigned int z ; /* целая без знака, 2 байта */

float b; /*переменная с плавающей точкой, 4 байта */

double d; /*переменная с двойной точностью, 8 байт */

printf("\n Введите целые i,x,y,z \n");

scanf("%d %d %ld %d ",&i,&x,&y,&z);

printf("\n i= %d x= %d y= %ld z= %d \n", i,x,y,z);

printf(" Введите вещественные b,d \n");

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

printf("\n b= %3f d= %5f \n", b,d);

printf(" Введите символ \n");

scanf("%c",&c);

printf("%c %d %o %x\n", c,c,c,c);

printf(" Введите строку \n ");

scanf("%s",&cs);

printf("cs=%s",cs);

getch();

}

Функции getchar ( ), putchar ( ), gets ( ), puts( )

Функции getchar() и putchar() выполняют ввод и вывод символа соответственно.

Самым простым вводом данных является чтение по одному символу из стандартного файла ввода stdin (находится в заголовочном файле stdio.h) с помощью функции getchar ( ).

Обращение:

c=getchar ( );

присваивает переменной с очередной вводимый с клавиатуры символ.

Функция putchar(c) выдает значение с в стандартный файл вывода stdout (находится в заголовочном файле stdio.h).

Таким образом, чтобы ввести символ используется функция getchar(), а чтобы вывести его на экран – функция putchar().

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

#include <stdio.h>

#include <conio.h>

main()

{

char c;

c='A' ;

while(c<='Z')

{ putchar(c);

c=c+1; }

getch();

}