C++ 输入字符 问题

#include"stdafx.h"voidmain(){floata,b;charc;printf("inputexpression:a+(-,*,/)b\n");sc... #include "stdafx.h"
void main(){
float a, b;
char c;
printf("input expression: a+(-,*,/)b \n");
scanf_s("%f%c%f", &a, &c, &b);
switch (c){
case '+': printf("%f\n", a + b); break;
case '-': printf("%f\n", a - b); break;
case '*': printf("%f\n", a * b); break;
case '/': printf("%f\n", a / b); break;
default: printf("a=%a,b=%b,c=%c input error\n", a, b, c);
}
scanf_s("%f",&a);
}

这段代码其实是C语言的,只是将scanf换成了scanf_s。
请问怎样输入才能算出10+11的值?请说的详细一些,包括回车和空格。
例如,我输入了
1,0,回车,+,回车
以后就出错了。
展开
 我来答
cjj796
2013-10-11 · TA获得超过8709个赞
知道大有可为答主
回答量:1.3万
采纳率:68%
帮助的人:3465万
展开全部

你的这个输入的时候要注意,你现在的程序,输入的时候,中间不能带空格:10+11 回车

scanf_s("%f%c%f", &a, &c, &b);

如果要输入的时候带有空格,就要改一下程序,输入的时候,中间能带空格:10 + 11 回车

scanf_s("%f %c %f", &a, &c, &b);

                     这里有空格了

更多追问追答
追问
我用的是visual studio C++,系统中不让用scanf,只让用scanf_s,但是这样却报错。
但是tobox C中却可以(用的scanf),到底是怎么回事?如何在visual studio里编?
追答
scanf_s 在调用的时候,要加一个数字,告诉函数最多读取几个字符

scanf_s("%c",&d,1); // 后面的 1 就是读取一个字符
金色潜鸟
2013-10-11 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5705万
展开全部
scanf_s("%f%c%f", &a, &c, &b); 输入格式 是 数值符号数值
前两个 数值符号 之间 必须没有空白,后一个 可以有空白,也可以没有。
输入例子:
11+22回车
11-空格-12回车
-11+12回车
-11+空格-12回车
符号 只允许 +-*/, 不允许逗号。
---
后面那句 scanf_s("%f",&a); 可以改用 system("pause");
追问
system("pause");
在c++里怎么用啊?我用的是visual C++,说“未定义标识符system”。
追答
我用的就是visual C++。所有的C/C++都有   system(....);
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
mafangsan
2013-10-11 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2593万
展开全部
输入
10+11 回车
就可以了

函数最后那个scanf_s的语句删除掉
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式