使用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
浙公网安备 33010602011771号