C++中的常用流输入函数

本文将介绍几个常用的流输入函数

cin

1
2
3
int a,b;
cin>>a>>b;
cout<<a<<endl<<b;

输入 2[回车]3[回车]

输出 2[回车]3[回车]

>>会过滤掉不可见字符(Tab,Space,Enter等)

不想略过,就用cin>>noskipws>>input

cin接受一个字符串,遇到不可见字符结束

1
2
3
4
5
6
string a;
cin>>a;
cout<<a;

输入 abcd efg
输出 abcd

cin.get()

本函数可用于接收字符以及接受给定数量的字符(可以接受空格)

1
2
3
4
5
6
7
8
9
10
11
12
13
char a;
a=cin.get();
cout<<a;

输入 abcd
输出 a

char a[20];
cin.get(a,20);
cout<<a;

输入 abcdeabcdeabcdeabcdeabcde 25个字符
输出 abcdeabcdeabcdeabcd 19个字符+1个'\0'

cin.getline()

输入一个字符串,可以接受空格

1
2
3
4
5
6
7
8
9
10
11
12
char a[20];
cin.getline(a,5);
cout<<a;
输入1 abcdefg
输出1 abcd
输入2 a bc
输出2 a bc

cin.getline(a,20,'e')
cout<<a;
输入 abcde
输出 abcd

getline()

接受一个字符串,可以接受空格

1
2
3
4
5
6
7
8
9
10
#include <cstring>
#include <iostream>

...
string a;
getline(cin,a);
cout<<a;
...
输入 abcd abcd
输出 abcd abcd