C++ Primer Plus P64——程序清单4.5(对4.3的问题 使用get解决输入问题,和get对于保留换行符二次输入问题的简单解答)

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();

结果:
在这里插入图片描述

感谢观看

再次感谢~

猜你喜欢

转载自blog.csdn.net/qq_51212951/article/details/114872450