首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >C程序。切换大小写/用户输入。default将继续执行

C程序。切换大小写/用户输入。default将继续执行
EN

Stack Overflow用户
提问于 2017-08-27 07:57:26
回答 4查看 843关注 0票数 3

每次我输入正确的字符输入时,都会执行默认语句。我遗漏了什么?

我的输出:

正确的输出:

代码语言:javascript
运行
AI代码解释
复制
#include <stdio.h>

void main() {
    char ch = '?'; 
    float f;
    double a = 10.00, b = 20.00;
    int i;
    for (i = 0; i < 10; i++) { 
        scanf("%c", &ch);

        switch (ch) {
          case '+': 
            f = a + b; 
            printf("f = %.0f\n", f);
            break;

          case '-': 
            f = a - b; 
            printf("f = %.0f\n", f);
            break;

          case '*': 
            f = a * b; 
            printf("f = %.0f\n", f);
            break;

          case '/': 
            f = a / b; 
            printf("f = %.2f\n", f);
            break;

          default:
            printf("invalid operator\n");
       }
    }
    return 0;
}
EN

回答 4

Stack Overflow用户

发布于 2017-08-27 08:12:10

在尝试解析字符以外的内容之前,scanf()函数会自动删除空格。

字符格式(%c%[…]%n)是个例外,它们不会删除空格。

在您的示例中,您必须跳过前导空格,才能完成此更改

代码语言:javascript
运行
AI代码解释
复制
scanf("%c", &ch);

代码语言:javascript
运行
AI代码解释
复制
scanf(" %c", &ch);
       ^              Note the space
票数 5
EN

Stack Overflow用户

发布于 2017-08-27 08:01:31

使用scanf,在你点击一个键之后,你需要点击"enter“。这将在输入流中插入两个字符--您按下的字符和换行符\n (可能还有\r,即回车符)。

为了进行演示,如果输入"a enter“,则输入流如下所示

代码语言:javascript
运行
AI代码解释
复制
a\n

如果您输入"a b c d enter",则输入流如下所示:

代码语言:javascript
运行
AI代码解释
复制
abcd\n

循环的第一次迭代将读取您输入的字符,下一次迭代将读取换行符(这不是case中的字符,因此将命中default语句。

要读取不带换行符的单个字符,请考虑getchar,或者只有两个额外的case,它们捕获换行符和回车符,并且在这两种情况下都不执行任何操作(但请记住,这将“窃取”一些有用的循环迭代)。

票数 2
EN

Stack Overflow用户

发布于 2017-08-27 08:10:52

您必须使用scanf(" %c", &ch);来消除所有空格,当使用%s时,您不需要空格。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45902850

复制
相关文章
❤️ C++ 用户输入讲解教程❤️
前面已经学习了cout用于输出(打印)值的 。现在我们将使用cin来获取用户输入。cin是一个预定义的变量,它使用提取运算符 ( >>)从键盘读取数据。在以下示例中,用户可以输入一个数字,该数字存储在变量 中x。然后我们打印 的值x:
川川菜鸟
2021/10/19
7600
将c语言文件打包成exe可执行程序
如何将编写的c语言程序打包成exe可执行文件呢? 以前我们写程序很多是在编辑器上,让编辑起来编译运行我们的程序。如果想将其打包成exe可执行文件该如何做?
兰舟千帆
2022/07/16
3.1K0
将c语言文件打包成exe可执行程序
vim替换区分大小写_word英文大小写切换
&是正则表达式全部匹配项, 其他的还有:\1,\2,\3,…,\9。表示第1,2,3…9个匹配项。
全栈程序员站长
2022/09/29
1.6K0
js实现字符大小写切换
相信实现方法肯定还有很多,但是从第二种方法我们可以看到正则表达式在实际项目中的应用还是相当广泛的,因此学习好正则也是衡量一个开发工程师的重要标准,小伙伴们一起加油(●’◡’●)
IT工作者
2022/01/24
4.6K0
用户输入
大多数程序都在解决最终用户问题,为此通常需要从用户那里获取一些信息。在程序需要一个名字时,你需要提示用户输入该名字;程序需要一个名字时,你需要提示用户输入一系列名字。
狼啸风云
2019/01/18
9760
程序员过关斩将--从用户输入手机验证码开始
验证用户的有效性或者安全性,是每个系统必备的安全措施,在移动端优先的时代,利用手机验证码来验证用户,算是安全系数比较高的手段。放眼当下几乎所有的互联网应用几乎都开放了手机验证码登录,而且应用内的敏感操作都需要手机验证码或者指纹,甚至面部识别来确定当前操作人的权限。
架构师修行之路
2020/05/12
6570
vim切换输入法
最近刚入门vim。 这篇文章,记录对 vim 切换输入法进行了解的一个过程,以及在了解 vim 插件过程中的一些心路历程。
六个周
2022/10/28
1.8K0
vim切换输入法
Windows上使用cpau工具来切换用户执行命令
在Windows上,如果想以某个用户来执行一个命令,在命令行上我们可以使用 runas 命令来实现。但是 runas 有个问题就是在执行的时候会提示需要输入密码,这样用起来很不方便。于是乎找到了 cpau 工具,可以从下面地址下载: http://www.joeware.net/freetools/tools/cpau/index.htm 具体用法如下: C:\Users\Administrator> cpau -u <domain>\<username> -p <password> -ex "cmd
kongxx
2018/06/04
1.7K0
Windows上使用AutoHotkey工具来切换用户执行命令
在Windows上,如果想以某个用户来执行一个命令,在命令行上我们可以使用 runas 命令来实现。但是 runas 有个问题就是在执行的时候会提示需要输入密码,这样用起来很不方便。于是乎找到了 AutoHotkey 工具,使用 AutoHotkey, 我们可以写一些简单的脚本来实现很多对 Windows 的操作。另外 AutoHotkey 还提供了 Ahk2Exe 工具,可以把 AutoHotkey 脚本编译成.exe可执行文件。 下载 https://autohotkey.com/ 官方网站上提供
kongxx
2018/06/06
1.6K0
Windows平台使用Python切换用户运行程序
在Windows平台,如果需要以某个指定用户来运行程序,此时可以通过使用 Windows CreateProcessAsUser API来实现。但是要实现这个功能首先需要有要切换用户的用户名和密码。 import psutil import win32process import win32security import win32con import win32api import win32service import win32file import win32profile import pywin
kongxx
2018/05/14
2K0
Linux如何切换到root用户(linux禁止用户切换root)
当前用户是xg其中我解释一下[xg@localhost ~] 这个的含义,其中xg指的是当前的用户,localhost指的是主机名,~指的是当前目录,后面的符号表示普通用户,普通用户的话就是在
全栈程序员站长
2022/08/02
59.5K0
Linux如何切换到root用户(linux禁止用户切换root)
UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等)
UWP 中使用 WebView 时可以在网页中额外执行一些代码。于是你几乎可以在网页上做任何事情,那些你可以在浏览器控制台中做的事情。
walterlv
2020/02/10
2K0
【C语言】default 关键字
🚩write in front🚩    🔎大家好,我是謓泽,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 🏅2021年度博客之星物联网与嵌入式开发TOP5~2021博客之星Top100~阿里云专家博主 & 星级博主~掘金⇿InfoQ~51CTOP创作者~周榜126﹣总榜960⇿全网访问量30w+🏅 🆔本文由 謓泽 原创 CSDN首发🙉如需转载还请通知⚠ 📝个人主页-謓泽的博客_CSDN博客 📃 🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​ 📣系列专栏-【C语言】关键字_謓泽的博
謓泽
2022/12/12
6830
Linux用户身份切换
为什么需要切换用户身份? 在日常工作中,尽量使用普通用户账号操作,当需要root权限的时候再通过身份切换的方式切换至root管理员,这样能保证系统的安全性。使用普通账号的安全性主要体现在两个方面: 防止因误操作而删除了系统重要文件; 创建一些系统账户专门用来启动某些服务,这样即使该服务被攻陷,系统仍然是安全的。 下面介绍两种Linux中切换用户身份的方式。 身份切换方式一:su 该命令可以将身份切换至指定账户,但需要输入该账户的密码。 su [-lm] [-c 命令] username 若不加userna
大闲人柴毛毛
2018/03/09
8K0
Python异常处理 -跳过异常继续执行
当循环中出现异常时,如何跳过循环中的异常继续执行,下面是一种可行的方法: import pandas as pd dates=range(20161010,20161114) pieces=[] for date in dates: try: data=pd.read_csv('A_stock/overview-push-%d/stock overview.csv' %date, encoding='gbk') pieces.append(data) exce
py3study
2020/01/06
3.3K0
apisix 如何拦截插件继续往下执行
    core.log.warn("plugin rewrite phase, conf: ", core.json.encode(conf))
空盒子里的巧克力糖
2022/12/02
5220
C++对象模型-Default Constructor
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10)
chinchao.xyz
2022/04/25
6450
设置ClickHouse默认用户default的密码
1、明文密码 (1)查找user.xml文件 [root@elastic1 app]# cd /etc/clickhouse-server/ [root@elastic1 clickhouse-server]# ll total 40 drwxr-xr-x 2 root root 4096 Sep 11 13:39 config.d -rw-r--r-- 1 root root 22601 Sep 11 13:45 config.xml lrwxrwxrwx 1 root root 41 Sep 1
程裕强
2020/09/15
9.2K0
Angular 2 用户输入
等号左边的 (click) 表示把该按钮的点击事件作为绑定目标 。 等号右边,引号中的文本是一个 模板语句
陈不成i
2021/07/26
1.7K0
Python之用户输入
大多数程序都旨在解决最终用户的问题,为此,需要从用户那里获取一些信息。函数input()让程序暂停运行,等待用户输入一些文本。
py3study
2020/01/06
1.2K0

相似问题

在与服务线程不同的线程上运行服务操作。

10

在UI线程上运行的服务中是否运行可运行的

46

在非UI线程上运行RIA服务

11

Android服务在UI线程上运行时如何处理“长时间运行”操作

12

Web服务可以在我的pc上运行,但不能在服务器pc上运行

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文