Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wyłapywanie błędów konwersji - Język C

Ostatnio zmodyfikowano 2016-10-26 22:29
Autor Wiadomość
zetnix
Temat założony przez niniejszego użytkownika
Wyłapywanie błędów konwersji - Język C
» 2016-10-26 20:23:54
Witam serdecznie,

napisałem program w języku C który pobiera zmienne jako argumenty wywołania programu. Argumenty te konwertują się na typ double. Chciałbym aby program kończył działanie w przypadku nieprawidłowej konwersji jeśli wpiszę mu np jakieś litery. Jak to zrobić?

C/C++
#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main( int argc, char * argv[] )
{
    if( argc != 4 )
    {
        printf( "Za mało lub za dużo argumentów.\nProszę podać 3 argumenty.\n\n" );
        return 1;
    }
    printf( "Ilosc argumentów programu = %d\n", argc );
    double a, b, c;
   
    a = atof( argv[ 1 ] );
   
    b = atof( argv[ 2 ] );
   
    c = atof( argv[ 3 ] );
   
    printf( "a=%lf b=%lf c=%lf \n", a, b, c );
    if( a == 0 )
    {
        printf( "To nie jest funkcja kwadratowa.\n" );
        return 0;
    }
    double delta = b * b - 4 * a * c;
    printf( "delta=%lf\n", delta );
    if( delta < 0.0 )
    {
        printf( "Brak rozwiazania.\n" );
        return 0;
    }
    else if( delta == 0.0 )
    {
        printf( "Jedno rozwiazanie: %lf\n", - b /( 2 * a ) );
        return 0;
    }
    else
    {
        printf( "Dwa rozwiazania: %lf oraz %lf\n",((( - b ) - sqrt( delta ) ) /( 2 * a ) ),((( - b ) + sqrt( delta ) ) /( 2 * a ) ) );
    }
   
    return 0;
}
P-152962
pekfos
» 2016-10-26 22:29:36
Użyj strtod() do konwersji.
P-152966
« 1 »
  Strona 1 z 1