超简的C++问题:cin<<a不能输入空格是吗?

int main(){
char a;
cin >> a;
cout << a;
return 1;
}
运行时,若输入空格,还会让继续输,输一个其他的字符就能正确输出且结束,这是为什么呢?
谢谢!

这不是问题,cin输入流类就是这样封装的

在按回车键前,不允许输入空字符(比如:空格,制表符,换行符等)。

如果你想输入空格等空字符,需要去你自己程序内部自行控制输入。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-09-22
因为cin封装的更加好了
具体机制不清楚
但是你用scanf看看
好像就不行了
第2个回答  2008-09-22
楼上的说得对,就是因为cin的问题,如果换成scanf就不行了,这是c++编译程序的问题。
第3个回答  2008-09-23
默认情况下
标准输入流cin是跳过空格的
如果想接受空格
可以先
cin.unsetf(ios::skipws);

超简的C++问题:cin<<a不能输入空格是吗?
这不是问题,cin输入流类就是这样封装的 在按回车键前,不允许输入空字符(比如:空格,制表符,换行符等)。如果你想输入空格等空字符,需要去你自己程序内部自行控制输入。

C++关于cin和cout
1、cin输入默认分隔符是空格或者回车,也可以设置分隔符。没有分隔符没办法去分隔数,这无庸赘言。2、如果只输入一个数按回车并不会把第二个数默认为0。而是等待你继续输入。因为回车也是默认的分隔符之一。3、endl是C++中换行的一种写法。

C++ 请问cin是无视空格还是把它当作输入结束的标志
cin空字符(包括回车,TAB,空格)都会当成一个输入的结束。连续的空字符会被忽略 欢迎追问。

c++语言关于cin的使用问题
一般只要用cin>>x>>y;就行了,程框矿里面输入时 用空格或者回车或者TAB键会自动隔开x,y 如果想要把空格记录进变量x或者y里面 常用的方法是 用cin.get 比如 char ch;ch=cin.get();或者cin.get(ch);括号中也可以放数组 如 char a[20];cin.get(a,20);cout<<a<<endl;那么在键盘...

C++问题!cin能读取回车和空格字符吗?
不能,cin遇到回车与空格结束读取,例如下面的代码:string str;cin >> str;cout << str;输入:abcdefg hijk 输出结果将会是:abcdefg 空格以后的将会被丢弃

C++程序编写读取值时,有空格甚至多个空格怎么办?
如果是输入的话,将运算符输入之前处理一下输入流中的数据。就是cin>>A之后把后面空格给处理掉 调用cin.eatwhite();\/\/我没用过,,,不行的话,用peek()和ignore()来处理。在输入运算符。。如果是字符串的话,写程序处理就是。。。

c++用cin输入字符问题
cin这是输入函数,cout才是输出。可以改为:cout<<"("<<x<<","<<y<<")";如果你不要小括号就是:cout<<x<<","<<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不换行?
如果你要输入多个数据,cin语句应这样写:cin>>a>>b>>c...;然后在输入数据时 没两个数之间用空格隔开就行了 并不是一定要换行

关于c++中的cin
在第一次运行cin>>s的时候,缓冲区为空,所以会显示下划线让你输入,线程挂起,然后你输入sdf sdf ssf sdf f EOF 回车 这时候,cin>>s返回,第一个sdf读进s,然后便输出sdf和换行 下一次执行cin>>s的时候,缓冲区不为空,所以不再要求用户输入,读取第二个sdf,然后输出sdf换行,依次类推 直到...

相似回答
大家正在搜