0

私はまだ C に不慣れで、ユーザーからの入力を検証しようとしています。'C' int int int または 'L' int int int int の形式である必要があります。また、必要なだけ入力することもできます。最初の文字をテストしてから、次の 3 つまたは 4 つの整数を取ります。これらは、他の関数でいくつかの構造を作成するために使用されます。私が仕事に就けないビットは、一番下のelseです。l/L/c/C ではない「タイプ」を拒否したい

これまでのところ、

   counter = 0 ;
   while ( type != '\n' )
   {  

      scanf("%c", &type) ;
      if ( type == 'L' || type == 'l')
      {
         scanf(" %d %d %d %d", &llx, &lly, &urx, &ury) ;
         Line line = makeline(llx,lly,urx,ury) ;
         shape = makeshapeline( line ) ;
         box = makeboxshape( shape ) ;
         counter++ ;
      }
      else if ( type == 'C' || type == 'c')
      {
         scanf(" %d %d %d", &x, &y, &rad) ;
         Circle circle = makecircle(x, y, rad) ;
         shape = makeshapecircle( circle ) ;
         box = makeboxshape( shape ) ;
         counter++ ;
      }
      else
      {
         printf("Invalid input\n") ;
         return 0 ;
      }

      if (counter == 1) 
      {
         boxfinal = box ; //On the first run initialise the final box to the first result
      }  

      if (counter > 1)
      {
         boxfinal = makeboxbox( box, boxfinal) ;
      }
   }

どうもありがとう

4

2 に答える 2