Задать вопрос
@MajorTom69

Как проверить ввод на число в С?

Пробовал так:
#include <stdio.h>
int main(void){
int N, var;
do {
printf("number = ");
var = scanf("%i", &N);
}while (var != 1);
}

но этот вариант зацикливается, нашел в сети решение такого плана
#include <stdio.h>
int main(void){
int N, var;
do {
printf("number = ");
var = scanf("%i", &N);
fflush(stdin);
}while (var != 1);
}

но это никак не повлияло, все также зацикливается.
Как решить??
  • Вопрос задан
  • 8314 просмотров
Подписаться 1 Оценить 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Решения вопроса 1
15432
@15432
Системный программист ^_^
что вы подразумеваете под "зацикливается"?
первый вариант действительно после неправильного ввода начинает бесконечно писать "number", но второй вариант вполне адекватно спрашивает number, пока не получит корректный номер. если вам нужно спросить только один раз, уберите while, а условие var != 1 используйте далее для определения корректности ввода (при вводе число, var будет равен 1)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
АО НПП «АМЭ» Санкт-Петербург
До 250 000 ₽
Uniscan Research Новосибирск
от 140 000 до 200 000 ₽
Базис-Центр Коломна
от 70 000 до 500 000 ₽