0
q - quit the program immediately. 
r <int> - //does something
i <int1> <int2> - //does something
d <int1> <ind2> - //does something
t <int1> <int2> - //does something
l - // does something
f <filename> - // does something

基本上用户会输入

'q' 它将退出该功能。

或者输入 'r' '1' '3' 它应该做一些事情。

我以前使用过 sscanf ,但这只是因为我知道 ints 会出现在字符选择之后。

对于最后一个

f 用户必须输入“f”,然后输入文件名,它应该打开文件。

我如何使用 sscanf 将这部分拟合到方程中。目前我的代码看起来像这样。

printf("Please enter a choice ");
sscanf(sentence," %c %d %d", &choice, &val1, &val2)

但是如果用户输入 'f' "filenamehere.exe" 这将不起作用

4

1 回答 1

0

你要做的就是把你的阅读分成两个步骤......首先获得用户想要的模式,然后根据模式采取行动......

char mode;

printf( "Please enter a choice " );
if( scanf( "%c", &mode ) < 1 )
{ 
    printf( "Could not read input\n" );
    exit( -1 );
}

switch( mode )
{
    case 'q': exit( 0 );
    case 'r':
    {
        int value;
        if( scanf( "%d\n", &value ) < 1 )
        {
            printf( "command 'r' requires you to input an integer value\n" );
            exit( -1 );
        }
        // do something with value
        break;
    }
    // etc...
}
于 2013-04-23T23:56:05.070 回答