我有一个简单的结构,用于存储需要通过用户输入初始化其值的人员的详细信息。结构如下:
typedef struct {
char name[20];
int age;
char address[50];
char vehicle[10];
}Runner;
我使用cin
存储每个Runner
的值,但希望在输入每个值后使用enter key
获取输入(可能包含其间的空格)。
以下是代码:
Runner run1;
cout << "Enter name age address vehicle (pressing enter at each instance)" << endl;
cin >> run1.name >> run1.age >> run1.address >> run1.vehicle ;
很明显,空格分隔值将被视为两个唯一条目。
如何在按下输入后跳过空格和cin
。此外,如果对这种情况有另一种方法,那么了解相同情况会很棒。
答案 0 :(得分:1)
cin.getline (name,20);
cin.getline (address,50);
cin.getline (vehicle,10);
cin >> age;
答案 1 :(得分:1)
由于输入可能在它们之间有空格,因此您应该使用getline函数。
cin.getline(run1.name,20);
cin.getline(run1.address,50);
cin.getline(run1.vehicle,10);
cin >> age
但是如果你想在取名字的价值后取年龄的价值,那你就必须做这样的事情。
cin.getline(run1.name,20);
cin >> run1.age;
cin.getline(dummy,5); //cin leaves a newline at the buffer. This line of code takes the newline from the buffer.
cin.getline(run1.address,50);
cin.getline(run1.vehicle,10);