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) ;可以用来截断字符串。
上一篇:C++输入小结


下一篇:c++常用的各类型的输入输出