关于getline()的一片文章(zt)

怎样获得文本的每一行呢 标准库支持 getline()函数 声明如下
istream&
           getline( istream &is, string str, char delimiter );
           getline()读取 istream 对象 向 string 对象插入字符 包括空格 直到遇到分割符 文件
           结束 或者被读入的字符序列等于 string 对象的 max_size()值 在该点处读入操作失败。
在每次调用 getline()之后 我们都会将 str 插入到代表文本的字符串 vector 中 下面是一
般化的实现17 我们已经将它提取到一个函数中 命名为 retrieve_text()

// 返回值是指向 string vector 的指针
vector<string,allocator>*
retrieve_text()
{
string file_name;
cout << "please enter file name: ";
cin >> file_name;
// 打开文本文件以便输入 ...
ifstream infile( file_name.c_str(), ios::in );
if ( ! infile ) {
cerr << "oops! unable to open file "
<< file_name << " -- bailing out!/n";
exit( -1 );
}
else cout << '/n';
vector<string, allocator> *lines_of_text =
new vector<string,allocator>;
string textline;
typedef pair<string::size_type, int> stats;
stats maxline;
int linenum = 0;
while ( getline( infile, textline, '/n' )) {
cout << "line read: " << textline << '/n';
if ( maxline.first << textline.size() ) {
maxline.first = textline.size();
maxline.second = linenum;
}
lines_of_text->push_back( textline );
linenum++;
}
return lines_of_text;
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值