C++ getline()是一种标准库函数,用于从输入流中读取字符串或行。它是<string>标头的一部分。 getline()函数从输入流中提取字符,并将其附加到字符串对象,直到遇到定界字符。这样做时,先前在字符串对象str中存储的值将被输入字符串替换(如果有)。
getline()函数可以两种方式表示:
- 用法:
istream& getline(istream& is, string& str, char delim);
参数:
- is:它是istream类的对象,它告诉函数有关从何处读取输入的流。
- str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。
- delim:它是定界字符,它告诉函数在达到该字符后停止读取进一步的输入。
返回值:此函数返回与作为参数接受的输入流相同的输入流。
-
用法:
istream& getline (istream& is, string& str);
第二个声明与第一个声明几乎相同。唯一的区别是,后者不接受任何定界字符。
参数:
- is:它是istream类的对象,它告诉函数有关从何处读取输入的流。
- str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。
返回值:此函数返回与作为参数接受的输入流相同的输入流。
下面的程序演示了getline()函数的工作
范例1:
// C++ program to demonstrate getline() function
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str;
cout << "Please enter your name:\n";
getline(cin, str);
cout << "Hello, " << str
<< " welcome to GfG !\n";
return 0;
}
输入:
Harsh Agarwal
输出:
Hello, Harsh Agarwal welcome to GfG!
范例2:我们可以使用getline()函数根据字符分割句子。让我们看一个示例,了解如何完成此操作。
// C++ program to understand the use of getline() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
string S, T;
getline(cin, S);
stringstream X(S);
while (getline(X, T, ' ')) {
cout << T << endl;
}
return 0;
}
输入:
Hello, Faisal Al Mamun. Welcome to GfG!
输出:
Hello, Faisal Al Mamun. Welcome to GfG!
注意:此函数将换行符或(\ n)字符视为分隔符,并且换行符是此函数的有效输入。
下面给出了新行如何引起问题的示例:
例:
// C++ program to demonstrate
// anomaly of delimitation of
// getline() function
#include <iostream>
#include <string>
using namespace std;
int main()
{
string name;
int id;
// Taking id as input
cout << "Please enter your id:\n";
cin >> id;
// Takes the empty character as input
cout << "Please enter your name:\n";
getline(cin, name);
// Prints id
cout << "Your id:" << id << "\n";
// Prints nothing in name field
// as "\n" is considered a valid string
cout << "Hello, " << name
<< " welcome to GfG !\n";
// Again Taking string as input
getline(cin, name);
// This actually prints the name
cout << "Hello, " << name
<< " welcome to GfG !\n";
return 0;
}
输入:
7 MOHIT KUMAR
输出:
Your id:7 Hello, welcome to GfG ! Hello, MOHIT KUMAR welcome to GfG !
相关文章:
相关用法
- C++ string at()用法及代码示例
- C++ std::string::insert()用法及代码示例
- C++ std::string::compare()用法及代码示例
- C++ std::string::clear用法及代码示例
- C++ std::string::erase用法及代码示例
- C++ std::string::find_last_not_of用法及代码示例
- C++ std::string::find_first_not_of用法及代码示例
注:本文由纯净天空筛选整理自 getline (string) in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。