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

isdigit (ctype.h)
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#3
Pointer*Rage Написал:isdigit (ctype.h)

Если не составит труда, можно небольшой примерчик?
Ответ
#4
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;
}
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#5
Спасибо, сегодня посмотрю как и что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 . Спасибо заранее за ответ.
Ответ
#6
Тоже кстати интересует данная темка)
[Изображение: KZNhl.png]
Ответ
#7
UP. (10 Simvolov)
Ответ
#8
Код:
#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 то условие истинное.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 1 Гость(ей)