C++ cin输入格式的问题

#include"iostream"#include"iomanip"#include"math.h"usingnamespacestd;intmain(){double... #include "iostream"
#include "iomanip"
#include "math.h"
using namespace std;
int main()
{
double x,y;
cin>>x>>",">>y;
if(fabs(x*x+y*y-1)<0.001) cout<<"Y"<<endl;
else cout<<"N"<<endl;
return 0;
} 我想在输入x,y时用逗号分隔,但执行却错误,请问为什么
展开
 我来答
云纱→璃
推荐于2017-11-23 · TA获得超过288个赞
知道答主
回答量:48
采纳率:0%
帮助的人:0
展开全部
很简单,你想在输入x y时用逗号分隔,那么其实输进电脑的是三个值,这三个值分别为"x",",","y",此时就要再定义一个字符型变量。main函数如下:
int main()
{
double x,y;
char c;
cin>>x>>c>>y;
if(fabs(x*x+y*y-1)<0.001) cout<<"Y"<<endl;
else cout<<"N"<<endl;
return 0;
}
这个字符型变量c的作用就是吸收符号“,”。
xzhw8608
2013-04-08 · TA获得超过1779个赞
知道小有建树答主
回答量:1074
采纳率:100%
帮助的人:574万
展开全部
这个还真不太容易说明白,因为C++使用流这个东西,cin是一个流对象,接收终端的输入遇到回车结束
然后终端的输入都存入到cin对象里
然后通过重载的运算符>>将存储的内容存储到变量里,但是默认按空格结束,其实你可以修改结束标志的

那么分析你cin的过程,输入1 空格 2,流里存入了1空格2
然后cin>>a,将1传给了a,遇到了空格,结束,但是此时cin并没有空.
cout << a,输出了1
然后继续cin>>b,因为cin里还有一个2存在,所以,b也得到了2

cout << b,就又输出2了

我也改一个判断输入的吧
#include
using namespace std;
int main()
{
int a=0,b=0;
char c;

while((c=cin.get()) != ' ' && c >= '0' && c <= '9')
{
a = a*10 + (c - '0');

}

//语句1
cout <<a; //语句2
//cin >>b; //语句3
while((c=cin.get()) != ' ' && c >= '0' && c <= '9')
{
b = b*10 + (c - '0');
}

cout <<b; //语句4

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hebemoon
2010-05-20 · 超过38用户采纳过TA的回答
知道答主
回答量:190
采纳率:0%
帮助的人:88.9万
展开全部
cin>>x>>",">>y;

cin>>后面的全是输入..你不能中间加个逗号“,”
必须要分开写:
cin>>x;
cout<<",";
cin>>y;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdlhb
2010-05-20 · TA获得超过259个赞
知道小有建树答主
回答量:107
采纳率:0%
帮助的人:116万
展开全部
cin>>x;
cout<<",";
cin>>y;
这样写吧;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式