本文详细介绍C++中的getline()函数用法及其在输入字符串时的优势,包括其语法、参数及应用实例。适合初学者参考学习。
C++中的getline()是标准库函数,在头文件中有输入流成员函数形式;在头文件中有普通函数形式。下面将详细介绍这两种形式的用法。
**输入流成员函数getline()**
该形式有两种重载方式:
```cpp
istream& getline(char* s, streamsize n);
istream& getline(char* s, streamsize n, char delim);
```
其作用是从输入流中读取至多n个字符(包括结束标记符),并将这些字符保存到s所对应的数组中。如果遇到指定的终止符delim或达到长度限制,即使未读满n个字符也会停止读取,并且不会将delim包含在输出结果内。
**代码实例:**
```cpp
#include
using namespace std;
int main(){
char name[256];
cout << Please input your name: ;
cin.getline(name, 256);
cout << The result is: << name << endl;
return 0;
}
// 另一个示例:
#include
using namespace std;
int main( ){
char line[100];
cout << Type a line terminated by t << endl;
cin.getline(line, 100, t);
cout << line << endl;
return 0;
}
```
**普通函数getline()**
该形式有四种重载方式:
```cpp
istream& getline(istream& is, string& str, char delim);
istream& getline(istream&& is, string& str, char delim);
istream& getline(istream& is, string& str);
istream& getline(istream&& is, string& str);
```
其变量包括:is(输入流,例如cin),str(string类型引用,用于存储从输入流中读取的信息)以及delim(字符类型的终止符,默认情况下遇到\n会停止输入)。普通函数getline()与成员函数类似,但是它将istream作为参数传递给函数,并且结果保存在字符串对象str中。
**代码实例:**
```cpp
#include
#include
using namespace std;
int main(){
string name;
cout << Please input your name: ;
getline(cin, name);
cout << Welcome to here! << name << endl;
return 0;
}
// 另一个示例:
#include
#include
using namespace std;
int main(){
string name;
cout << Please input your name: ;
getline(std::cin, name, #);
cout << Welcome to here! << name << endl;
return 0;
}
```
总之,getline()函数可以用于从输入流中读取字符串,并允许设置截断字符。根据不同的使用场景和需求选择合适的重载形式即可满足特定的应用要求。