天天看點

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

結果:

C++ Primer Plus P64——程式清單4.5(對4.3的問題 使用get解決輸入問題,和get對于保留換行符二次輸入問題的簡單解答)

感謝觀看

再次感謝~

繼續閱讀