注册 登录
编程论坛 C++教室

用cin输入空格的问题

终极意义 发布于 2011-04-24 23:22, 18840 次点击
#include <iostream.h>
void main()
{   
cout<<"please enter your name and age:"<<endl;     
char name[10];   
int age;     cin>>name;   
cin>>age;     
cout<<"your name is"<<name<<endl;     
cout<<"your age is"<<age<<endl;     
}
说明:现在要用cin输入name和age。
比如说name是Li Ming(中间有一个空格),age是:19
但是大家都知道:cin的数据间是以空格分开的,这就造成不能输Li Ming中间的那个空格。否则将认为name是Li
大家不妨将以上代码带入,亲自试试,挺有意思的,也希望大家能找出能够输入空格的办法。(毕竟名和字之间有个空格是比较顺眼的)
15 回复
#2
rjsp2011-04-25 08:23
难道你不会 cin >> 姓 >> 名 >> 年龄 ?
#3
诸葛修勤2011-04-25 11:55
getline
#4
pangding2011-04-25 13:38
楼上的两种方法都行。

不过好多外国人的名字有三个字段,也有有两个字段的。情况不统一,所以有时也不是特好处理。
用 getline 来处理相对简单些。
#5
stranger552011-04-25 15:10
#include <iostream>
using namespace std;
int main()
{
cout<<"please enter your name :"<<endl;
string name;
int age;
getline(cin,name);
cout<<"please enter your age :"<<endl;
cin>>age;
cout<<"your name is "<<str<<endl;
cout<<"your age is "<<age<<endl;
return 0;
}
#6
Noll_Nie2011-04-26 22:18
getline是哪个头文件里的啊?
#7
诸葛修勤2011-04-26 22:26
string
#8
linw12252011-04-26 22:35
受教了
#9
linw12252011-04-26 22:36
其实如果name定义成字符数组的话,
用gets函数也可以。
#10
BlueDreame2011-04-27 16:16
或者从细节出发,使用循环加cin.get()
#11
pangding2011-04-27 19:06
说实话,一劳永逸的方法就是用 cin.get() 一个一个地处理。
#12
棉雨2011-04-30 18:46
受教了
#13
fydgo2011-06-02 23:04
想没想过 如果int型里不小心输入了 字符 那怎么办?
#14
lucky5635912011-06-03 08:12
用gets不就行了!
#15
ishagua2011-06-03 17:20
最好是getline
#16
ToBeStronger2011-06-04 13:51
回复 楼主 终极意义
一看楼主的预编译指令#include<iostream.h>,我就知道楼主的学习程度了
1