Проверка на ввод цифр - C (СИ) (79239)
Формулировка задачи:
Как реализовать проверку пользователя что он ввёл именно цифры ?
Спасибо за ваши отзывы)
#include <stdio.h>
int pack(void);
int unpack(void);
int main(int argc, char *argv[])
{
if (argc == 2),
switch(argv[1][1])
{
case 'p': pack(); break;
case 'u': unpack(); break;
default : printf("некорректная опция\n");
}
else printf("вызов: %s [опция] /n опции:\n\t -p: упаковка;\n\t -u: распаковка\n",argv[0]);
return 0;
}
int pack(void)
{
unsigned c; /* код состояния */
unsigned f; /* признак ошибки */
unsigned b; /* признак занятости */
unsigned n; /* количество байт */
unsigned int UnitStateWord; /*слово состояния */
/* ввод составных частей */
printf("Введите код состояния (0 - 31) >");
scanf("%d",&c);
printf("Введите признак ошибки (0 / 1) >");
scanf("%d",&f);
printf("Введите признак занятости (0 / 1) >");
scanf("%d",&b);
printf("Введите кол-во переданных байт (0 - 255) >");
scanf("%d",&n);
/* формирование упакованного кода */
UnitStateWord=((unsigned int)c&0x1F)<<11;
UnitStateWord|=((unsigned int)f&1)<<9;
UnitStateWord|=((unsigned int)b&1)<<8;
UnitStateWord|=n&0xFF;
/* вывод результата */
printf("\nСлово состояния устройства = %04x\n", UnitStateWord);
return 0;
}
int unpack(void)
{
unsigned c; /* код состояния */
unsigned f; /* признак ошибки */
unsigned b; /* признак занятости */
unsigned n; /* количество байт */
unsigned int UnitStateWord; /* слово состояния*/
/* ввод слова состояния устройства */
printf("Введите cлово состояния устройства \n");
printf("(16-ричное число от 0 до 0xFFFF) >");
scanf("%x",&UnitStateWord);
/* Выделение составных частей */
c=(UnitStateWord>>11)&0x1F;
f=(UnitStateWord>>9)&1;
b=(UnitStateWord>>8)&1;
n=UnitStateWord&0xFF;
/* вывод результатов */
putchar('\n');
printf("Код состояния = %d\n",c);
printf("Признак ошибки = %d\n",f);
printf("Признак занятости = %d\n",b);
printf("Количество переданных байт = %d\n",n);
return 0;
}Решение задачи: «Проверка на ввод цифр»
textual
Листинг программы
unsigned c; /* код состояния */ unsigned f; /* признак ошибки */ unsigned b; /* признак занятости */ unsigned n; /* количество байт */
Объяснение кода листинга программы
- В коде присутствуют переменные: c, f, b, n.
- Переменная
cимеет тип данных unsigned, что означает беззнаковое целое число. - Переменная
fимеет тип данных unsigned, что означает беззнаковое целое число. - Переменная
bимеет тип данных unsigned, что означает беззнаковое целое число. - Переменная
nимеет тип данных unsigned, что означает беззнаковое целое число. - Значение переменной
cне определено и требует инициализации. - Значение переменной
fне определено и требует инициализации. - Значение переменной
bне определено и требует инициализации. - Значение переменной
nне определено и требует инициализации. - Код может использоваться для проверки ввода цифр.
- Код может быть частью функции или программы, которая обрабатывает пользовательский ввод.
- Код может быть использован для проверки корректности ввода данных в базу данных.
- Код может быть использован для проверки корректности ввода данных в файл.
- Код может быть использован для проверки корректности ввода данных в алгоритм.
- Код может быть использован для проверки корректности ввода данных в систему.
- Код может быть использован для проверки корректности ввода данных в программу.
- Код может быть использован для проверки корректности ввода данных в игру.
- Код может быть использован для проверки корректности ввода данных в систему управления.
- Код может быть использован для проверки корректности ввода данных в приложение.
- Код может быть использован для проверки корректности ввода данных в устройство.