Проверка корректности ввода - C (СИ)
Формулировка задачи:
всем приятного времени суток))тут такой вопросик! имеется прога, которая переводит из любой системы в любую! так вот как сделать проверку на корректность ввода? т.е. сначала мы вводим начальную систему(например 3) а потом вводим строку(например 0124), и надо чтобы мне комп ругнулся на 4, типа недопустимый символ! вот что-то ступор какой-то....
#include <stdio.h> #include <conio.h> #include <iostream> #include <math.h> using namespace std; char mass[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V'}; void convert_into_anySystem(int x, int sys1); int convert_into_ten(char x[50], int sys); int main() { setlocale (LC_ALL,"rus"); char c; char x[50]; int sys, sys1; do{ system("cls"); printf("введите начальную систему счисления: "); scanf("%d", &sys); printf("\n"); printf("введите: "); scanf("%s", &x); printf("\n"); printf("введите систему, в которую требуется перевести : "); scanf("%d", &sys1); printf("\n"); convert_into_anySystem(convert_into_ten(x, sys), sys1); printf("Для повтора нажмите пробел, для выхода любую клавишу."); } while( ( c = getch() ) == ' ' ); getch(); } int convert_into_ten(char x[50], int sys) { int i=strlen(x), sum=0; for(int p=0; p<i; p++) { if (x[p]>=58) x[p]-=7; sum+=((x[p]-48)*pow((double)sys,(i-p-1))); } return sum; } void convert_into_anySystem(int x, int sys1) { int tmp=x, ost, a=0; char ch[500]; while(tmp>=sys1) { tmp=x/sys1; ost=x%sys1; ch[a]=mass[ost]; x=tmp; a++; } ch[a]=mass[tmp]; printf("в %d системе = ", sys1); for(int i=a; i>=0; i--) cout<<ch[i]; cout<<endl; }
Решение задачи: «Проверка корректности ввода»
textual
Листинг программы
find_first_not_of("0123");
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д