如何使scanf在if语句目标c中工作

Ruohan Ding

如何在if语句中使scanf工作?客观地-c

    Calculator *myCalculator = [ [ Calculator alloc ] init ] ;

    NSLog(@"What would you like to do: add , subtract, multiply , divide , set accmulator, or exit?") ;
    scanf("%c",  &what[20] ) ;

     if( strcmp(&what[20] , "subtract" ) == 0 )
    {
        NSLog(@"first number:" ) ;
        scanf("%lg" , &value1) ;
        NSLog(@"second number: ") ;
        scanf("%lg" , &value2) ;

        [myCalculator setAccmulator: value1] ;
        [myCalculator subtract: value2] ;
        NSLog(@"%lg" ,[myCalculator accmulator ]) ;
    }
    if( strcmp(&what[20] , "add" ) )
    {
        NSLog(@"first number:" ) ;
        scanf("%lg" , &value1) ;
        NSLog(@"second number: ") ;
        scanf("%lg" , &value2) ;

        [myCalculator setAccmulator: value1] ;
        [myCalculator add: value2] ;
        NSLog(@"%lg" ,[myCalculator accmulator ]) ;

    }
     if( strcmp(&what[20] , "multiply" ) == 0 )
    {
        NSLog(@"first number:" ) ;
        scanf("%lg" , &value1) ;
        NSLog(@"second number: ") ;
        scanf("%lg" , &value2) ;

        [myCalculator setAccmulator: value1] ;
        [myCalculator multiply : value2 ] ;
         NSLog(@"%lg", [myCalculator accmulator ]) ;
    }
     if( strcmp(&what[20] , "divide" ) == 0 )        {
        NSLog(@"first number:" ) ;
        scanf("%lg" , &value1) ;
        NSLog(@"second number: ") ;
        scanf("%lg" , &value2) ;

        [myCalculator setAccmulator: value1] ;
        [myCalculator divide: value2] ;
         NSLog(@"%lg", [myCalculator accmulator ]) ;
    }
     if( strcmp(&what[20] , "set accmulator" ) == 0 )        {
        NSLog(@"enter number you want to set" ) ;
        scanf("%lg" , &value1) ;

        [myCalculator setAccmulator: value1 ] ;
        NSLog(@"%lg" , [myCalculator accmulator] ) ;
    }
    else
        return 0 ;



}

return 0 ;

}

而且输出甚至都没有给您机会为scanf键入任何内容,我尝试删除了{},但没有任何区别。

用户名

您的问题在这里:

( strcmp(&what[20] , "subtract" )这不是方法的结果,因此该if语句不知道这是什么,因此不知道该怎么做== 0

尝试这种方式:

Calculator *myCalculator = [ [ Calculator alloc ] init ] ;

scanf("%c",  &what[20] ) ;

NSString* userInput = [[NSString alloc] initWithUTF8String: &what[20]];
//change "add" to check another NSString
//this way tou don't have to worry wether it's uppercase or lowercase
if ([userInput caseInsensitiveCompare:@"subtract"]==NSOrderedSame) 
{
//check if negative then do whatever
}

注意: ==比较字符串的引用(地址),而不是它们的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章