Wyłapywanie błędów konwersji - Język C
Ostatnio zmodyfikowano 2016-10-26 22:29
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ć? #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; }
|
|
pekfos |
» 2016-10-26 22:29:36 Użyj strtod() do konwersji. |
|
« 1 » |