C++ 中 cin.get()、cin.getline()、getline()的用法總結

原文鏈接:https://www.cnblogs.com/flatfoosie/archive/2010/12/22/1914055.html

C++ 中 cin.get()、cin.getline()、getline()的區別

1 輸入輸出流

#include<iostream>

1.1 cin.get() 用法
1.1.1 cin.get(字符變量名)可以用來接收一個字符
#include <iostream>
using namespace std;
int main (){
	char ch;
	ch = cin.get();   //或者cin.get(ch);
	cout << ch << endl;
	return 0;
}
// 輸入:jljkljkl
// 輸出:j
1.1.2 cin.get(?,?)用來接收一行字符串,可以接收空格
  • cin.get(字符數組名,接收字符數目)
#include <iostream>
using namespace std;
int main (){
	char a[20];
	cin.get(a,20);
	cout << a << endl;
	return 0;
}
// 輸入:jkl jkl jkl
// 輸出:jkl jkl jkl

// 輸入:abcdeabcdeabcdeabcdeabcde (輸入25個字符)
//輸出:abcdeabcdeabcdeabcd (接收19個字符+1個'\0')
1.1.3 cin.get()捨棄回車
  • cin.get(無參數)沒有參數主要是用於捨棄輸入流中的不需要的字符,或者捨棄回車,彌補cin.get(字符數組名,接收字符數目)的不足。
  • 用法看這道題( 翻轉字符串)。
1.2 cin.getline() 用法
1.2.1 cin.getline()接受一個字符串(可含空格)
#include <iostream>
using namespace std;
int main (){
	char m[20];
	cin.getline(m,5);
	cout << m << endl;
}
// 輸入:jkljkljkl
// 輸出:jklj

// 接受5個字符到m中,其中最後一個爲'\0',所以只看到4個字符輸出。

2 string類

#include<string>

2.1 getline() 用法
2.1.1 getline() 接受一個字符串(可含空格)
#include<iostream>
#include<string>
using namespace std;
int main (){
	string str;
	getline(cin,str);
	cout << str << endl;
	return 0;
}
// 輸入:jkljkljkl
// 輸出:jkljkljkl

// 輸入:jkl jfksldfj jklsjfl
// 輸出:jkl jfksldfj jklsjfl

3 總結一下

寫了這麼多,好像有用的需要記住的也就三點。

  • cin.get(); 可以吃掉一個回車。
  • getline(cin, str); 輸入字符串。
  • cin.getline(charstr, num) ;可以用來截斷字符串。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章