C++ cin输入格式的问题

#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时用逗号分隔,但执行却错误,请问为什么

很简单,你想在输入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的作用就是吸收符号“,”。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-08
这个还真不太容易说明白,因为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;
}
第2个回答  2010-05-20
cin>>x>>",">>y;

cin>>后面的全是输入..你不能中间加个逗号“,”
必须要分开写:
cin>>x;
cout<<",";
cin>>y;
第3个回答  2010-05-20
cin>>x;
cout<<",";
cin>>y;
这样写吧;

C++ cin输入格式的问题
很简单,你想在输入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...

c++用cin输入数组问题
只能先用一行输入a,再用一行输入b[a]——因为cin是从右边开始压栈的,就是先压b[a]再压a,显然压b[a]时还不知道a是多少,后面输入了a,但改变不了已经压栈了的内容。就是说这种情况一定要保证操作b[a]时a必须是已知的。但这种东西与编译器关系很大,也许后来的编译器异想天开,弄个别致的...

关于C++输入cin的问题,下面的程序,如果输入的不合法,那就将陷入死循环...
例如你输入的数据为a,然后回车,此时输入缓冲区中就有两个字符,一个是‘a’,一个是回车换行符‘\/n’,接着程序读取,由于类型不匹配,读取失败,并没有读走输入缓冲区中的数据,也就是说,此时输入缓冲区中还是‘a’,和‘\\n’,

c++用cin输入字符问题
cin这是输入函数,cout才是输出。可以改为:cout<<"("<<x<<","<<y<<")";如果你不要小括号就是:cout<<x<<","<<y;希望对你有帮助...

关于C++的cin输入格式的问题
上面的语句无非就是输入数字然后输入一个短划线或者冒号,用cin也是一样的,无非就是你输入的短划线或者冒号需要一个字符串变量来接收呗。string str;int year,month,day;cin>>year>>str>>month>>str>>day;这些在输入的时候样式是一样的。

C++使用cin时,如果输入字符为什么出现-85899346?
输入数据类型与cin>>指定的类型不一致 (比如你这里定义一个整型变量,但程序启动后却塞给它字符型的数据)会导致cin调用 矢败,cin不再从缓冲区读取数据 ,后面所有试图用cin赋值的变量都会保留原值.你这里说的这个-85899346应该是 定义整型变量没有初始化而保留的原值吧....

c++中有关cin的问题
value 是int型变量,按下Enter键时,由于读入错误类型值,导致输入流cin的状态变为不可用,于是退出循环。cin的几种状态:cin.eof()cin.bad()cin.fail()cin.good()当前三者 cin.eof() & cin.eof() & cin.fail() 为0时,此时cin.good() 为1,否则cin.good()为0 楼上提到的返回类型为void...

为什么c++中 cin>>x>>y;是正确,cin>>x, y;是不正确的?说的深奥点,为什 ...
因为cin是以流的方式输入输出的,而不是用参数

c++中输入格式的问题
直接就可以了。cin>>a[i]; 输入碰到空格就认为是前一个数据输入完毕,然后就等待下一个数据的输入了。所以你可以直接试一下,在一行输入几个数,中间用空隔分开。

c++中cin问题
输入1.25 现在缓冲区里面有[1.25]先是cin>>a; cin>>int:读取输入直到非数字字符 所以读到.的时候停止了 即a=1 输入缓冲区里面现在有[.25]在cin>>b; cin>>double 读取直到非数字和小数点 cin>>.25 所以b=0.25;

相似回答