Как сделать запрет ввода букв на языке Си? Объясните как можно проще.

программирование Visual studio Си язык программирования

Использую Visual Studio.

Задание (консольное приложение win32):
Написать программу, запрашивающее целое число в интервале от 0 до 10 и выводящее на экран куб этого числа. При вводе целого числа, не попадающего в данный интервал или дробного числа, программа должна просить повторить ввод.

Код таков (писал не я, но всё же):
#include "stdafx.h"
#include <stdio.h>
#include "locale.h"
#include "conio.h"
#include "stdlib.h"
#include <string.h>
#include <math.h>

int _tmain(int argc, _TCHAR* argv[])
{
char buffer[128];
int b;
double a,intpart,fractpart;
setlocale(LC_CTYPE, "russian");
printf("Введите целое число от 0 до 10:");
gets(buffer);
a=atof(buffer);
fractpart = modf (a , &intpart);
if (fractpart!=0)
printf("Вы ввели дробное число!");
else
{
b=atoi(buffer);
if (b<0 & b>10)
printf("Вы ввели число отличное от указанного диапазона 0-10!");
else
{
printf("Результат: %i",b*b*b);
}
}
_getch();
return 0;
}
Ответы:
for (int i=0;i<128;i++) { if(  (buffer[i]>='A' && buffer[i]<='Z') || (buffer[i]>='a' && buffer[i]<='z') || (buffer[i]>='А' && buffer[i]<='Я') || (buffer[i]>='а' && buffer[i]<='я')) printf("Вы ввели не число"); }
>Eckie
Да че мелочиться, давайте все остальное в условие накатим! Управляющие символы, графические и прочую! :)
if(buffer[i] < '0' || buffer[i] > '9') printf("Вы не ввели целое число.");
Ой! Что-то слишком кратко получилось, че это я. :)


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.