Как запретить ввод символов - C (СИ)
Формулировка задачи:
Можно ли как-то запретить ввод символов в т е мне надо, чтобы программа выбирала только цифры или не выполнялась, пока пользователь не введет корректные данные, или можно это сделать с помощью регулярных выражений?
Для примера полный код:
При вводе буквы получается, что остальные координаты вводить не надо.
scanf("%f", &qwe);#include <stdio.h>
#include <locale.h>
#include <conio.h>
main(void) {
setlocale(LC_ALL,"Russian"); //установка русского языка
// Объявление переменных
int i;
float t[4][2]; // Массив координат
float qwe; // рабочая переменная
printf("\n\n\nВведите:");
//ввод данных
for(i=0; i<=3; i++)
{
printf("\nКоординаты: %d-ой точки: \n \n \t \t x=", i+1);
scanf("%f", &qwe);
t[i][0]=qwe;
printf("\n \t \t y=");
scanf("%f", &qwe);
t[i][1]=qwe;
}
getch();
}Решение задачи: «Как запретить ввод символов»
textual
Листинг программы
#include<stdio.h>
int main(){
float x;
while(scanf("%f", &x))
printf(" x*x= %f\n\n", x*x);
return 0;
}
Объяснение кода листинга программы
В этом коде:
- В первой строке подключается стандартная библиотека scanf.h, которая позволяет вводить данные с клавиатуры.
- В функции main() создается переменная типа float с именем x.
- Далее, в цикле while(scanf(
%f, &x)) происходит считывание значения с клавиатуры и сохранение его в переменной x. С помощью функции scanf() происходит считывание числа с плавающей точкой (числа с десятичной частью). - В каждой итерации цикла значение x выводится на экран с помощью функции printf(). Выводится значение x*x.
- Цикл продолжается до тех пор, пока на клавиатуре не будет введено значение.
- В конце функции main() возвращается 0, что означает успешный конец работы программы.