C++最全输入方式总结(cin、get、getchar、getline)

目录

写在前面:

一、输入方式

1.cin>>

2.cin.get()

3.cin.getline()

下面介绍几个string的输入:

4.getline()

5.gets()

6.getchar()

二、输入控制

三、例子

写在前面:

主要注意的包括以下几个点(重要性不分先后):

1.输入参数

2.结束标志

3.是否会将没输入的继续放在输入流

4.返回值

5.针对字符、数字及字符、字符串的哪种情况

一、输入方式

1.cin>>

1)最常见的是获取输入的一个字符或数字(后面会介绍只输入字符的情况),如

int a,b;

cin>>a>>b;

注意:cin>>会自动过滤掉不可见字符(如空格 回车 tab等)。

若不想过滤掉空白字符,可以用noskipws流进行控制。如下程序,没有过滤掉不可见字符,输入的空格字符存入了input[1]中,也可输出。

#include

using namespace std;

int main()

{

int input[5];

for (int i = 0; i < 5; i++)

cin >> noskipws >> input[i];

for (int i = 0; i < 5; i++)

cout << input[i] << endl;

system("pause");

return 0;

}

2)获取输入的字符串,可以用数组或string类型。如

char a[20];

cin>>a;

cout<

或者string类型:

string s;

cin>>s;

cout<

注意:遇到空格、回车等会结束获取输入的字符串,后面的字符串会过滤掉(存放在输入流中)。如果后面还需要输入字符串,则会从前面存放的字符串开始获取。

比如将输入存在一个数组中,中途若遇见空格,则只会将空格前面的内容放入数组。

#include

using namespace std;

int main()

{

int c[20];

cin >> c;

cout << c;

system("pause");

return 0;

}

2.cin.get()

此函数从输入流中读入一个字符(char 非int,如果定义数组或变量为int就会出错!),返回值就是该字符的 ASCII 码。如果碰到输入的末尾,则返回值为 EOF。 EOF 是 End of File 的缩写。istream 类中从输入流(包括文件)中读取数据的成员函数,在把输入数据都读取完后再进行读取,就会返回 EOF。EOF 是在 iostream 类中定义的一个整型常量,值为 -1。get() 函数不会跳过空格、制表符、回车等特殊字符,所有的字符都能被读入。

1)cin.get(字符变量名),用来接收字符,只获取一个字符,可以接收空格,遇回车结束

#include

using namespace std;

int main()

{

char c[20];

for (int i = 0; i < 20; i++)