C++中的两种getline用法详解
在C++中,getline
函数是一个十分常用的函数,它的作用是从输入流中读取一行数据并存放到一个string类型的变量中。但实际上,C++中有两种不同的getline
函数使用方式,这里将对它们进行详细讲解。
getline(istream& is, string& str)
这种用法是getline
函数的最基本用法,它的函数原型如下:
istream& getline (istream& is, string& str);
它的作用是从输入流is
中读取一行数据,存放到str
对应的string类型变量中,直到读取到换行符或文件结束符EOF为止。如果成功读取到数据,则返回输入流is
的引用;否则,返回NULL
。
以下代码展示了如何使用getline(istream& is, string& str)
函数,从标准输入中读取一行数据并打印输出:
#include <iostream>
using namespace std;
int main()
{
string str;
getline(cin, str);
cout << str << endl;
return 0;
}
上述代码首先定义了一个string类型的变量str
,然后调用getline
函数从标准输入流cin
中读取一行数据,将数据存放到str
对应的string类型变量中,并打印输出。
运行程序后,我们可以输入一行数据并回车,该程序将会输出我们输入的那行数据。
getline(istream& is, string& str, char delim)
这种用法是在基本用法的基础上增加了一个参数,即限定读取数据的分隔符。它的函数原型如下:
istream& getline (istream& is, string& str, char delim);
它的作用是从输入流is
中读取一行数据,存放到str
对应的string类型变量中,直到读取到指定的分隔符delim
或文件结束符EOF为止。如果成功读取到数据,则返回输入流is
的引用;否则,返回NULL
。
以下代码展示了如何使用getline(istream& is, string& str, char delim)
函数,从标准输入中以逗号分隔的形式读取三个单词,并打印输出:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string input;
getline(cin, input);
stringstream ss(input);
string word;
while (getline(ss, word, ','))
{
cout << word << endl;
}
return 0;
}
上述代码首先定义了一个名为input
的string类型变量,然后通过getline(cin, input)
从标准输入中读取一行数据,存放到input
中。接着,将输入的数据放入一个stringstream
对象ss
中,使用getline
函数读取其中的单词,并以逗号为分隔符进行划分。
运行程序后,我们可以输入三个单词,以逗号分隔,程序将会按照逗号进行划分,并将三个单词打印输出。
总结
C++中的getline
函数是一个功能强大的函数,可根据需求选择不同的使用方式。基本用法适用于读取文本文件中的一行数据或从标准输入中读取一行数据,而带有分隔符的用法则适用于读取以特定分隔符分割的数据。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++中的两种getline用法详解 - Python技术站