在看各种C++书的时候,有的程序中会有cin.get()
,而有的程序没有。那到底cin.get()
有什么作用呢?用过C语言的应该知道getchar()
,作用是一样的
下面看两个小程序:
#include< iostream >
using namespace std;
int main()
{
const int Arsize = 20;
char name[ Arsize];
char dessert[ Arsize ];
cout<<" Enter your name: ";
cin.get( name,Arsize ).get();
cout<<" Enter your favorite dessert: ";
cin.get( dessert,Arsize ).get();
cout<<" I have some delicious "<< dessert;
cout<< " for you ," <<name << ".\n";
return 0;
}
#include<iostream>
using namespace std;
struct inflatable
{
char name[20];
float volume;
double price;
};
int main()
{
inflatable *ps = new inflatable;
cout<<" Enter name of inflatable item: ";
cin.get( ps->name,20 );
cout<<" Enter volume in cubic feet: ";
cin>>(*ps).volume;
cout<<" Enter price: $ ";
cin>>ps->price;
cout<< " Name: "<< (*ps).name << endl;
cout<< " Volume: "<< ps->volume << "cubic feet\n" ;
cout<< "Price: $ " << ps->price <<endl;
delete ps;
return 0;
}
对于code1,需要连续输入2个字符串,在输入第一个字符串name后,需要输入一个回车来结束输入,如果不加cin.get()
语句的话,第二个变量dessert接收的就是回车。因此,需要cin.get()
对于code2,第一次输入字符串,第二次输入的是数字,由于输入的类型不同,不需要接收回车字符。因此,有没有cin.get()
无所谓。