Obsługa błędów przy wprowadzeniu złych danych wejściowych

0

Witam.
Muszę w programie zrobić sprawdzanie czy dane wejściowe są poprawne. Jedeynymi poprawnymi danymi są 1 i 0.
Napisałem taki oto kod:

	for (i=0; i<argc-1; i++)
	{
		c=atoi(argv[i+1]);
		if (c!=0 && c!=1)	printf("Wprowadzone dane sa niepoprawne!");
	}	

i przy wprowadzeniu cyfr 1 lub zero działa poprawnie (nie drukuje błędu), dla cyfr innych niż 0 lub 1 drukuje błąd. Jednak jeśli wprowadzę litery to interpretuje je jako 0 i nie wywala błędu. Czy mógłby mi ktoś pomóc? :)

0

atoi() odpada polecam sscanf()

0

No dobra. Tylko chyba nie zrozumiałem użycia tego sscanf, bo napisałem taki oto kod:

for (i=0; i<argc-1; i++)
        {
                sscanf (argv[i-1], "%d", &x );
                if (x!=0 && x!=1)       printf("Wprowadzone dane sa niepoprawne!");
        }

i przy wywołaniu programu wyrzuca mi naruszenie ochrony pamięci. :(

1
                if(sscanf(argv[i-1],"%d%c",&x,&ch)!=1)       printf("Wprowadzone dane sa niepoprawne!");

1 użytkowników online, w tym zalogowanych: 0, gości: 1