我想从argv[1]
得到一个整数值。
我想知道如果用户输入一个字符会发生什么,以便我可以避免它。我试过'\ 0',目前这不起作用。
int main(int argc, char* argv[]){
int MAX_SIZE;
MAX_SIZE=atoi(argv[1]);
while(MAX_SIZE=='\0'){
printf("plz input in correct format: ");
scanf("%d", &MAX_SIZE);}
任何帮助,将不胜感激。
你的代码有点奇怪,但据我所知,你想检查一个字符是否是一个数字,因为你可以使用函数isdigit()
检查输入的值是否为数字,如下所示:
char c='a';
if(isdigit(c)) //if true, i.e. it returns non-zero value
cout<<"number";
else // if false, i.e. it returns zero
cout<<"Char";
我编写了C ++代码,因为我在C ++中更舒服,但函数isdigit()
在C和C ++中都有效。
# include <stdio.h>
# include <stdlib.h>
int main ( int argc, char *argv[] )
{
int i, n, a;
printf("\n argv[0] = %s\n", argv[0] );
if ( argc <= 1 )
{
printf("\n");
printf(" argc = %d, no arguments given on command line\n", argc );
printf("\n");
}
for ( i = 1; i < argc; i++ )
{
n = sscanf( argv[i], "%d", &a );
if ( n == 1 )
{
printf(" read %d off command line in argv[%d]\n", a, i );
}
else
{
printf(" sscanf failed, n = %d, argv[%d] = %s\n", n, i, argv[i] );
}
}
return 0;
}