当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ getline(string)用法及代码示例


C++ getline()是一种标准库函数,用于从输入流中读取字符串或行。它是<string>标头的一部分。 getline()函数从输入流中提取字符,并将其附加到字符串对象,直到遇到定界字符。这样做时,先前在字符串对象str中存储的值将被输入字符串替换(如果有)。

getline()函数可以两种方式表示:

  1. 用法:
    istream& getline(istream& is, 
               string& str, char delim);

    参数:


    • is:它是istream类的对象,它告诉函数有关从何处读取输入的流。
    • str:这是一个字符串对象,从流中读取输入后,将输入存储在此对象中。
    • delim:它是定界字符,它告诉函数在达到该字符后停止读取进一步的输入。

    返回值:此函数返回与作为参数接受的输入流相同的输入流。

  2. 用法:
    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 !

相关文章:



相关用法


注:本文由纯净天空筛选整理自 getline (string) in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。