Проверка корректности ввода - 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");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5
Похожие ответы