cin.getline()函数如何使用,有什么功能?
时间: 2024-05-14 08:17:55 浏览: 10
`cin.getline()`函数是C++中用来读取一行字符串的函数,其函数原型如下:
```
istream& getline(char* str, streamsize count, char delim);
```
- `str`: 字符串数组,用于存储读入的字符串。
- `count`: 最大读入字符数,包括空字符。
- `delim`: 分隔符,遇到该字符会停止读入。
`cin.getline()`函数会从标准输入流中读取一行字符串,并将其存储到`str`数组中。读取的字符数不超过`count-1`个,剩余的字符会被丢弃。函数会在读取到分隔符`delim`时停止读取,如果没有读取到分隔符,则会读取到`count-1`个字符或者读取到换行符为止。
例如,下面的代码可以从标准输入流中读取一行字符串,并输出它:
```cpp
#include <iostream>
using namespace std;
int main() {
char str[100];
cout << "请输入一行字符串:" << endl;
cin.getline(str, 100); // 读取一行字符串
cout << "你输入的字符串是:" << str << endl;
return 0;
}
```
如果用户输入了`hello world!`,程序会输出:
```
请输入一行字符串:
hello world!
你输入的字符串是:hello world!
```
注意,`getline()`函数读取到分隔符后并不会将分隔符存储到`str`数组中。如果不希望读取到分隔符,则可以将分隔符设置为换行符`'\n'`。例如,下面的代码可以读取多行字符串,直到用户输入一个空行为止:
```cpp
#include <iostream>
using namespace std;
int main() {
string str;
cout << "请输入多行字符串,以空行结束:" << endl;
while (getline(cin, str) && !str.empty()) { // 读取多行字符串
cout << "你输入的字符串是:" << str << endl;
}
return 0;
}
```