为什么我这个小程序总是读不到“回车”呢?请大家帮我看看,谢谢大家了。
程序:
istream& operator >>(istream& istr,Word& w){
char wd[20],c;
int i=0;
while(istr.get(c)&&!isalpha(c)){
if(c=='\n'){
w.lineno++;
cout<<"\\\\\\\\\\\\\\\\\\\nnnnnnnnnnnnn";
}
}
if(!istr.eof()){
c=tolower(c);
wd[i++]=c;
while(istr.get(c)&&(isalpha(c)||isdigit(c)))
wd[i++]=tolower(c);
wd[i]='\0';
if(c=='\n'){
istr.putback(c);
cout<<"\\\\\\\\\\\\\\\\\\\nnnnnnnnnnnnn";
}
w.wordText=wd;
w.count=0;
w.lastLineNo=w.lineno;
}
return istr;
}
文本:
peter piper picked a peck of pickled peppers. a peck of pickled pepper peter piper picked.if peter piper picked a peck of pickled peppers,where is the peck that peter piper picked?
Word是自定义的一个类,我想从一个文本中读单词,当读到“回车”时,w.lineno这个静态变量就自动加1。但我加了各种输出语句,从结果上看,从没读到过“回车”。这是为什么?是程序的错,还是文本输入有错。谢谢大家了。