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

Wait User Input C Language



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

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

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







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



Функция scanf ()

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



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





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

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

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



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

//Example1.c
#включают

intглавный(){

intя;
printf ('Введите 1-е целое значение:');
сканф ('% d', &я);
printf ('Вы вошли:% d п',я);

printf ('Введите 2-е целое значение:');
сканф ('% d', &я);
printf ('Вы вошли:% d п',я);

возвращение 0;
}

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

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

//Example2.c
#включают

intглавный(){

символc;
printf ('Введите символ:');
сканф ('% c', &c);
printf ('Вы вошли:% c п',c);

возвращение 0;
}

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

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

//Example3.c
#включают

intглавный(){

символc;
printf ('Введите 1-й символ:');
сканф ('% c', &c);
printf ('Вы вошли:% c п',c);

printf ('Введите 2-й символ:');
сканф ('% c', &c);
printf ('Вы вошли:% c п',c);

возвращение 0;
}

Пример 4 :

//Example4.c
#включают

intглавный(){

символc;
printf ('Введите 1-й символ:');
сканф ('% c', &c);
printf ('Вы вошли:% c п',c);

printf ('Введите 2-й символ:');
сканф ('% c', &c);
printf ('Вы вошли:% c п',c);

возвращение 0;
}

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

//Example5.c
#включают

intглавный(){

символимя[пятнадцать];
printf ('Введите ваше имя: ');
сканф ('% s',имя);
printf ('Вы вошли:% s п',имя);

возвращение 0;
}

getc () Функция

Синтаксис: int getc (ФАЙЛ * поток)

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

Пример 6:

//Example6.c
#включают

intглавный(){

символc;
printf ('Введите 1-й символ:');
в то время как((cзнак равно getc (стандартный ввод))==' п');
printf ('Вы вошли:% c п',c);

в то время как( getc (стандартный ввод)знак равно' п');

printf ('Введите 2-й символ:');
в то время как((cзнак равно getc (стандартный ввод))==' п');
printf ('Вы вошли:% c п',c);

возвращение 0;
}

Функция getchar ()

Синтаксис: int getchar (пусто)

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

Пример 7:

//Example7.c
#включают

intглавный(){

символc;
printf ('Введите 1-й символ:');
в то время как((cзнак равно Getchar ())==' п');
printf ('Вы вошли:% c п',c);

в то время как( Getchar ()знак равно' п');

printf ('Введите 2-й символ:');
в то время как((cзнак равно Getchar ())==' п');
printf ('Вы вошли:% c п',c);

возвращение 0;
}

Заключение

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