| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Си: Механизм фильтрации пользовательского ввода
Здравствуйте.
Проблема: Код:
int main(int argc, char **argv[]) ... Самое главное: как проверить, является ли значение в argv[1] переменной типа int или нет? Заранее спасибо. |
|
|
# 3 | |
|
Guest
Сообщения: n/a
|
Разобрался.
crawler, Цитата:
Код:
/* (C) Eric Cartman */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main( int argc, char** argv )
{
char *end;
long int r;
if( argc > 1 ){
r = strtol( argv[1], &end, 10 );
if( end[0] != '\0' ){
fprintf( stderr, "Garbage input [%s]\n", end );
return 2;
}
if( errno ){
fprintf( stderr, "strtol error [%s]\n",
strerror( errno ) );
return 3;
}
printf( "Valid argument: %ld\n", r );
} else {
fprintf( stderr, "Usage: %s [number]\n", argv[0] );
return 1;
}
return 0;
}
|
|