C++ 输入函数详解
在 C++ 中,有多种输入函数可供选择,每种函数都有其特点和使用场景。今天,我们将详细介绍 cin、cin.get()、cin.getline()、getline() 和 gets() 函数的使用。
1. cin 函数
cin 是 C++ 中最基本的输入函数,它可以用来输入各种类型的数据,包括整数、浮点数、字符、字符串等。使用 cin 函数时,需要在变量前面加上「>>」符号,例如:
```cpp
int a, b;
cin >> a >> b;
```
cin 函数的特点是会过滤掉不可见字符,如空格、回车、TAB 等。如果想保留这些字符,可以使用 noskipws 流控制符,例如:
```cpp
cin >> noskipws >> input[j];
```
2. cin.get() 函数
cin.get() 函数可以用来输入单个字符或一行字符串。它有三种用法:
```cpp
char ch;
ch = cin.get(); // 或者 cin.get(ch);
cout << ch << endl;
```
```cpp
char a[20];
cin.get(a, 20);
cout << a << endl;
```
```cpp
cin.get(); // 没有参数,用于舍弃输入流中的不需要的字符
```
3. cin.getline() 函数
cin.getline() 函数可以用来输入一行字符串,可以接收空格并输出。它有三个参数,分别是接受字符串的存储空间、接受个数和结束字符(默认为 '\n')。
```cpp
char m[20];
cin.getline(m, 5);
cout << m << endl;
```
如果将第三个参数省略,系统默认为 '\n'。如果将例子中 cin.getline() 改为 cin.getline(m, 5, '\n'); 当输入 jlkjkljkl 时输出 jklj,输入 jkaljkljkl 时,输出 jk, 此时 cin 的状态标志位 false。
4. getline() 函数
getline() 函数可以用来输入一行字符串,可以接收空格并输出。它与 cin.getline() 函数类似,但它返回的是一个 string 对象。
```cpp
string line;
getline(cin, line);
cout << line << endl;
```
5. gets() 函数
gets() 函数可以用来输入一行字符串,但是它已经被废弃,不建议使用。
6. getchar() 函数
getchar() 函数可以用来输入单个字符。
7. cin.ignore() 函数
cin.ignore() 函数可以用来舍弃输入流中的不需要的字符。
```cpp
cin.ignore(); // 跳过一个字符,例如不想要的回车、空格等字符
```
每种输入函数都有其特点和使用场景,选择适合的输入函数可以提高程序的效率和可读性。