由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 继续请教C++重载问题,>>
相关主题
读取数据求教C++重载<<错误?
how to read a sentence into a vector of string?所谓FP就是 递归+pattern matching?
C++ Q13: Input一个比较模糊的问题
输入输出流,stl,api精通各需要多长时间?为什么在overloading中,friend <<不能读取private值呢?
能否对某个库进行操作符重载?如何把文件内容读到2D的vector里?
求教:取串中的子串好方法istream_iterator问题
讨论一个c++的变态之处some problems with "cin"
求助,这样从c++输入窗口读入一连串的单词或数字呢?请教一个static 函数的问题
相关话题的讨论汇总
话题: stream话题: 对象话题: istream话题: getline话题: 空行
进入Programming版参与讨论
1 (共1页)
l***e
发帖数: 480
1
有一文件存有大量对象记录,前面问过。
每行一个记录,记录有两种:
一种是两个string和两个int,中间是'\t';串中有空格。
另一种是开头一个固定字符串以'?'结尾,然后是两个串,和一个int,中间也是'\t';
记录/行之间有空行。
我要定义这个对象的extractor(>>)
我的问题是,空行在哪里处理?
如果在对象>>函数里处理,那就要产生空对象返回。
如果在对象>>函数外处理,主程序先从文件里读一行,判断是否空行,是,跳过;不是
,送给对象,这时传的就是string了,而不是输入流了。
所以请教大家,集思广益。
l***e
发帖数: 480
2
例子:
aaa\tbbb\t3\t5
bbb\tccc\t7\t4
aaa\tbb bb\t6\t2
bb bb\tddd\t8\t3
zzz?\tdd dd\tbb bb\t6
zzz?\tccc\taaa\t8
zzz?\tee ee\tbbb\t3
zzz?\aaa\tccc\t9
S**I
发帖数: 15689
3
在>>函数里,如果是空行,跳过读下一行

【在 l***e 的大作中提到】
: 有一文件存有大量对象记录,前面问过。
: 每行一个记录,记录有两种:
: 一种是两个string和两个int,中间是'\t';串中有空格。
: 另一种是开头一个固定字符串以'?'结尾,然后是两个串,和一个int,中间也是'\t';
: 记录/行之间有空行。
: 我要定义这个对象的extractor(>>)
: 我的问题是,空行在哪里处理?
: 如果在对象>>函数里处理,那就要产生空对象返回。
: 如果在对象>>函数外处理,主程序先从文件里读一行,判断是否空行,是,跳过;不是
: ,送给对象,这时传的就是string了,而不是输入流了。

l***e
发帖数: 480
4
like this?:
friend istream & operator>>(istream &stream, class & obj) {
i=getline(stream, obj.a, '\t');
if(i>0){
getline(stream, obj.b, '\t');
stream >> obj.c >> obj.d >> ws;
return stream;
}
}
mail()
{
while(!cin.eof()) cin>>obj;
}
S**I
发帖数: 15689
5
得用while,除非没有连续的空行

【在 l***e 的大作中提到】
: like this?:
: friend istream & operator>>(istream &stream, class & obj) {
: i=getline(stream, obj.a, '\t');
: if(i>0){
: getline(stream, obj.b, '\t');
: stream >> obj.c >> obj.d >> ws;
: return stream;
: }
: }
: mail()

l***e
发帖数: 480
6
搞定了,多谢。
能不能自己定义分隔符,然后,直接
stream>>obj.a>>obj.b>>obj.c>>obj.d>>ws;
return stream;
?
1 (共1页)
进入Programming版参与讨论
相关主题
请教一个static 函数的问题能否对某个库进行操作符重载?
问个关于cin的问题求教:取串中的子串好方法
关于文件读取的C++ 问题?讨论一个c++的变态之处
C++ read matrix from txt file求助,这样从c++输入窗口读入一连串的单词或数字呢?
读取数据求教C++重载<<错误?
how to read a sentence into a vector of string?所谓FP就是 递归+pattern matching?
C++ Q13: Input一个比较模糊的问题
输入输出流,stl,api精通各需要多长时间?为什么在overloading中,friend <<不能读取private值呢?
相关话题的讨论汇总
话题: stream话题: 对象话题: istream话题: getline话题: 空行