1. 程式人生 > >cin.getline返回值問題

cin.getline返回值問題

     經過測試,用cin.getline()讀入一行資料時,如果輸入的資料大於函式引數中的字元個數n,則getline返回值為0!但cin.get()遇到這種情況的返回值不為0!如圖

#include <iostream>
#include <string>

using namespace std;

int main()
{	
	char b[20];

	cout << cin.getline(b, 20, '\n');	
	return 0;
}

#include <iostream>
#include <string>

using namespace std;

int main()
{	
	char b[20];

	cout << cin.get(b, 20, '\n');	
	return 0;
}


所以讀入多行資料時,最好不要用while(cin.getline())這種形式判斷,除非把引數n設定為很大。

ps:讀入一行字元最好用string類裡的getline()