Форум администраторов игровых серверов

Полная версия: Добавление проверок в код C
Вы просматриваете упрощённую версию нашего контента. Просмотр полной версии с полным форматированием.
Ребята, всем привет! Начал изучать ЯП C, вот меня и интересует - сделал простой конвертер (допустим рубли в $) , функционал - полностью рабочий, программка консольная, но возникла такая проблема: при вводе букв или знаков ".", "," , а так же "1.e" как пример - не дает error (допустим обычное еррор сообщение в консольке), а вместо этого конвертирует это значение точно так же, только в полную лабуду. Как можно сделать проверку на символы и буквы? исключить их или сделать так, что после их ввода давало printf("error \n"); , как пример.
Заранее благодарен.
FullControl Написал:Ребята, всем привет! Начал изучать ЯП C, вот меня и интересует - сделал простой конвертер (допустим рубли в $) , функционал - полностью рабочий, программка консольная, но возникла такая проблема: при вводе букв или знаков ".", "," , а так же "1.e" как пример - не дает error (допустим обычное еррор сообщение в консольке), а вместо этого конвертирует это значение точно так же, только в полную лабуду. Как можно сделать проверку на символы и буквы? исключить их или сделать так, что после их ввода давало printf("error \n"); , как пример.
Заранее благодарен.

isdigit (ctype.h)
Pointer*Rage Написал:isdigit (ctype.h)

Если не составит труда, можно небольшой примерчик?
FullControl Написал:Если не составит труда, можно небольшой примерчик?

Код:
// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "ctype.h"
#include "string.h"


int _tmain(int argc, _TCHAR* argv[])
{
    char* input = "gf4444444djyu"; //ваш инпут
    for(int i = 0; i < strlen(input); i++) {
        if(!isdigit(input[i])) continue;
        //you code
    }
    return 0;
}
Спасибо, сегодня посмотрю как и чтоSmile А можно ли сделать еще каким-либо способом данную задачу?

Добавлено через 4 часа 27 минут
Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
    float r;
    float d;
    setlocale(LC_ALL, "Russian");
    printf("Введите значения: \n");
    scanf("%f", &r);
    forengeit = r*2;
    printf("Ваши подсчитанные значения: %f", d);
    getch();
    return 0;
}

Как здесь добавить верно проверку на дурака, чтобы при вводе букв или посторонних символов (. и запятая как пример) - давало сообщение (printf("error")Wink . Спасибо заранее за ответ.
Тоже кстати интересует данная темка)
UP. (10 Simvolov)
Код:
#include <stdio.h>
#include <conio.h>
#include <locale.h>
int main()
{
    float r;
    float d;
    setlocale(LC_ALL, "Russian");
    printf("Введите значения: \n");
    if  (scanf("%f", &r))
        {
    forengeit = r*2;
    printf("Ваши подсчитанные значения: %f", d);
        }
        else
        printf("Некорректный ввод");
    getch();
    return 0;
}

Если в условии if ноль или еще что-то например буквы, условие не верно, если число больше 0 то условие истинное.