使用cin.getlint( )

#include<iostream>
using namespace std;
int main()
{
const int ArSize=20;
char name[ArSize];
char dessert[ArSize];

cout<<"Enter your name:\n";
cin.getline(name,ArSize);
cout<<"Enter your favorite dessert:\n";
cin.getline(dessert,ArSize);
cout<<"I have some delicious "<<dessert;
cout<<" for you,"<<name<<".\n";
system("pause");
return 0;
}

使用cin.getline(name,ArSize).getline(dessert,ArSize);和两次调用cin.getline()效果相同。

使用get( )

第一种

#include<iostream>
using namespace std;
int main()
{
const int ArSize=20;
char name[ArSize];
char dessert[ArSize];

cout<<"Enter your name:\n";
cin.get(name,ArSize);
cout<<"Enter your favorite dessert:\n";
cin.get();//处理换行符
cin.get(dessert,ArSize);
cout<<"I have some delicious "<<dessert;
cout<<" for you,"<<name<<".\n";
system("pause");
return 0;
}

第二种

#include<iostream>
using namespace std;
int main()
{
const int ArSize=20;
char name[ArSize];
char dessert[ArSize];

cout<<"Enter your name:\n";
cin.get(name,ArSize).get();
cout<<"Enter your favorite dessert:\n";
cin.get(dessert,ArSize);
cout<<"I have some delicious "<<dessert;
cout<<" for you,"<<name<<".\n";
system("pause");
return 0;
}

混合输入字符串和数字

#include<iostream>
using namespace std;
int main()
{
cout<<"What year was your house built?\n";
int year;
cin>>year;
cout<<"What is its street address?\n";
char address[80];
cin.getline(address,80);
cout<<"Year built:"<<year<<endl;
cout<<"Address:"<<address<<endl;
cout<<"Done!\n";
system("pause");
return 0;
}

这样会导致错误,用户没有输入地址的机会。

解决方法1:利用get()

cin>>year;
cin.get();

解决方法2:利用表达式cin>>year返回cin对象,将调用拼接起来

(cin>>year).get(); or (cin>>year).get(ch); 

 

 posted on 2021-03-07 19:29  HuJiao粉  阅读(43)  评论(0)    收藏  举报