Дождитесь ввода пользователя: язык C

Дождитесь ввода пользователя язык C Программирование и разработка

В языке программирования C есть несколько функций ввода. Используя эти функции, мы можем ждать ввода данных пользователем. В этом уроке мы собираемся подробно обсудить функции ввода.

Строка формата

Строка формата — это формат вводимых данных. Этот формат начинается со знака%, за которым следует спецификатор формата. Спецификатор формата — это особый символ, который используется для того, какой тип данных читается.

arg1, arg2, arg3… — адреса переменных, в которых будут храниться введенные данные.

Функция scanf ()

Синтаксис: int scanf («строка формата», arg1, arg2, arg3…)

Вот некоторые из часто используемых спецификаторов:

  • d- используется для целочисленных значений.
  • f- Используется для числа с плавающей запятой.
  • c- используется для односимвольного значения.
  • s- используется для струнных.

Используя одну функцию scanf (), пользователь может вводить один или несколько входных данных.

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

Пример 1: Целочисленный ввод

//Example1.c
#include

int main(){

int i;
printf(«Enter 1st integer value : «);
scanf(«%d»,&i);
printf(«You Entered : %d\n«,I);

printf(«Enter 2nd integer value : «);
scanf(«%d»,&i);
printf(«You Entered : %d\n«,I);

return 0;
}

В Example1.c мы видели, что когда мы вводили целочисленные значения и нажимали клавишу ввода. Функция scanf () принимает значение и сохраняет его в переменной. Если мы вводим значения, разделенные пробелом, функция возвращается, когда встречается пробел, но значения после пробела остаются во входном буфере. Вот почему вторая функция scanf () не будет ждать ввода пользователя, вместо этого она принимает ввод из буфера.

Пример 2: ввод одного символа

//Example2.c
#include

int main(){

char c;
printf(«Enter a character: «);
scanf(«%c»,&c);
printf(«You Entered : %c\n«,c);

return 0;
}

В Example2.c мы видели, что когда мы используем спецификатор % c, функция scanf () принимает только один символ, даже если мы ввели более одного символа.

Пример 3: ввод одного символа (несколько раз)

//Example3.c
#include

int main(){

char c;
printf(«Enter 1st character: «);
scanf(«%c»,&c);
printf(«You Entered : %c\n«,c);

printf(«Enter 2nd character : «);
scanf(«%c»,&c);
printf(«You Entered : %c\n«,c);

return 0;
}

Пример 4

//Example4.c
#include

int main(){

char c;
printf(«Enter 1st character: «);
scanf(«%c»,&c);
printf(«You Entered : %c\n«,c);

printf(«Enter 2nd character : «);
scanf(» %c»,&c);
printf(«You Entered : %c\n«,c);

return 0;
}

Пример 5: Строковый ввод

//Example5.c
#include

int main(){

char name[15];
printf(«Enter Your Name: «);
scanf(«%s»,name);
printf(«You Entered : %s\n«,name);

return 0;
}

getc () Функция

Синтаксис: int getc (FILE * stream)

Функция getc () используется для чтения символа из указателя FILE (потока). Чтобы читать с клавиатуры, мы должны использовать stdin. Эта функция возвращает целочисленное значение прочитанного символа.

Пример 1:

//Example1.c
#include

int main(){

char c;
printf(«Enter 1st character: «);
while((c=getc(stdin))==\n);
printf(«You Entered : %c\n«,c);

while(getc(stdin)!=\n);

printf(«Enter 2nd character : «);
while((c=getc(stdin))==\n);
printf(«You Entered : %c\n«,c);

return 0;
}

Функция getchar ()

Синтаксис: int getchar (void)

Функция getchar () аналогична функции getc (). Единственное отличие состоит в том, чтофункция getc () может читать из любого входного потока, тогда какфункция getchar () читает только из стандартного ввода.

Пример 1:

//Example1.c
#include

int main(){

char c;
printf(«Enter 1st character: «);
while((c=getchar())==\n);
printf(«You Entered : %c\n«,c);

while(getchar()!=\n);

printf(«Enter 2nd character : «);
while((c=getchar())==\n);
printf(«You Entered : %c\n«,c);

return 0;
}

Заключение

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

Читайте также:  Перегрузка в C++: функции, оператора
Оцените статью
bestprogrammer.ru
Добавить комментарий