如果将字符分配到C中的int变量会发生什么

问题描述 投票:0回答:2

我想从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);}

任何帮助,将不胜感激。

c int character
2个回答
0
投票

你的代码有点奇怪,但据我所知,你想检查一个字符是否是一个数字,因为你可以使用函数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 ++中都有效。


0
投票
# 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;
}
© www.soinside.com 2019 - 2024. All rights reserved.