使用scanf_s()函数存储用户输入的计算字母('A', 'S', 'M', 'D')

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

我必须使用 scanf_s() 函数来存储用户输入的计算字母('A','S','M','D')。使用 ctype.h 头文件中的 toupper() 函数确保输入有效数据。

此代码可能如下所示:

scanf_s(" %c", &option, 1);                       
option=toupper(option);

接下来,创建一个

while(
) 循环来检查用户是否输入了计算字母
('A', 'S', 'M', 'D')
,仅接受这些字母作为有效条目。请记住,当用户继续使用该程序时,您还需要在正确条目循环内使用此
while()
循环来检查数据有效性。

我正在努力弄清楚如何从整数切换到使用字符,以便我可以使用 ASMD 作为条目而不是 1234

我附上了一张照片my program显示了我构建的开始,其余部分都是相同的,只是数学问题不同。

c loops char switch-statement
1个回答
0
投票

不需要复杂的嵌套

while()
循环。

只需将

switch()
与“A”、“S”等一起使用,不用担心小写输入:

scanf( " %c", &option );

switch( option ) {
    case 'A':
    case 'a':
        // do "addition" stuff
        break;

    case 'S':
    case 's':
        // do "subtraction" stuff
        break;

    // and so on...

    default:
        // "Bad selection, try again"
}

很容易添加

Q/q
来终止循环并“退出”程序...

© www.soinside.com 2019 - 2024. All rights reserved.