📜  C++中的std :: basic_istream :: getline与示例

📅  最后修改于: 2021-05-30 02:46:20             🧑  作者: Mango

std :: basic_istream :: getline用于从流中提取字符,直到行尾,或者提取的字符是定界字符。分隔字符是换行字符即“\ n”。如果使用文件进行输入,如果到达文件末尾,此函数还将停止提取字符。

头文件:

#include 

句法:

basic_istream& getline (char_type* a, 
                            streamsize n )

basic_istream& getline (char_type* a, 
                            streamsize n, 
                             char_type delim);

参数:它接受以下参数:

  • N:代表a所指向的最大字符数。
  • a:它是指向字符串以存储字符的指针。
  • stream:这是一个明确的定界字符。

返回值:返回basic_istream对象。

下面是演示basic_istream :: getline()的程序

程序1:

// C++ program to demonstrate
// basic_istream::getline
  
#include 
using namespace std;
  
// Driver Code
int main()
{
    // Given string
    istringstream gfg("123|aef|5h");
  
    // Array to store the above string
    // after streaming
    vector > v;
  
    // Use function getline() to stream
    // the given string with delimeter '|'
    for (array a;
         gfg.getline(&a[0], 4, '|');) {
        v.push_back(a);
    }
  
    // Print the strings after streaming
    for (auto& it : v) {
        cout << &it[0] << endl;
    }
  
    return 0;
}
输出:
123
aef
5h

程式2:

// C++ program to demonstrate
// basic_istream::getline
  
#include 
using namespace std;
  
// Driver Code
int main()
{
    // Given string
    istringstream gfg("GeeksforGeeks, "
                      " A, Computer, Science, "
                      "Portal, For, Geeks");
  
    // Array to store the above string
    // after streaming
    vector > v;
  
    // Use function getline() to stream
    // the given string with delimeter ', '
    for (array a;
         gfg.getline(&a[0], 40, ', ');) {
        v.push_back(a);
    }
  
    // Print the strings after streaming
    for (auto& it : v) {
        cout << &it[0] << endl;
    }
  
    return 0;
}
输出:
GeeksforGeeks
A
Computer
Science
Portal
For
Geeks

参考: http : //www.cplusplus.com/reference/istream/basic_istream/getline/

要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”