C++ Primer Plus P64——程序清单4.5
使用get解决输入问题
相较于程序清单4.3的解决方案的第二种方法
/*
C++ Primer Plus P64——程序清单4.5
使用get解决输入问题
*/
#include<iostream>
int main(void)
{
using namespace std; // 编译指令
const int Arsize = 20; //定义数组元素个数
char name[Arsize]; //用于存储名字
char dessert[Arsize]; //用于定义用户喜欢的甜品
cout << "Enter your name:" << endl; //提醒用户输入名字
cin.get(name, Arsize).get(); //面向行的输入字符串工具_get(数组名,元素个数)
cout << "Enter your favorite dessert:" << endl;
cin.get(dessert, Arsize).get(); //面向行的输入字符串工具_get(数组名,元素个数)
cout << "I have some delicious " << dessert; //显示点的甜品
cout << " for you, " << name << endl; //显示名字
return 0;
}
/*
cin.get(name, Arsize).get();
因为get将会保留换行符,而getline则不会,所以解决get二次输入的时候将读取到换行符而无法正常读取后面的数据,
所以解决方法就是在cin.get(数组,元素个数)后在加一个空get,即:
cin.get(数组,元素个数).get();
*/
相较于程序清单4.3的更改:
cout << "Enter your name:" << endl; //提醒用户输入名字
cin.get(name, Arsize).get(); //面向行的输入字符串工具_get(数组名,元素个数)
cout << "Enter your favorite dessert:" << endl;
cin.get(dessert, Arsize).get(); //面向行的输入字符串工具_get(数组名,元素个数)
注意:
cin.get(name, Arsize).get();
因为get将会保留换行符,而getline则不会,所以解决get二次输入的时候将读取到换行符而无法正常读取后面的数据,
所以解决方法就是在cin.get(数组,元素个数)后在加一个空get,即:
cin.get(数组,元素个数).get();
结果:
感谢观看
再次感谢~