你的getline有问题:
getline
template
basic_istream&getline(
basic_istream&is,
basic_string&str);
template
basic_istream&getline(
basic_istream&is,
basic_string&str,
Edelim);
Thefirsttemplatefunctionreturnsgetline(is,str,is.widen('\n')).
Thesecondtemplatefunctionreplacesthesequencecontrolledbystrwithasequenceofelementsextractedfromthestreamis.Inorderoftesting,extractionstops:
Atendoffile.
Afterthefunctionextractsanelementthatcomparesequaltodelim,inwhichcasetheelementisneitherputbacknorappendedtothecontrolledsequence.
Afterthefunctionextractsis.max_size()elements,inwhichcasethefunctioncallssetstate(ios_base::failbit).
Ifthefunctionextractsnoelements,itcallssetstate(failbit).Inanycase,itreturns*this.
Seetherelatedsampleprogram.
istream::getline
istream&getline(char*pch,intnCount,chardelim='\n');
istream&getline(unsignedchar*puch,intnCount,chardelim='\n');
istream&getline(signedchar*psch,intnCount,chardelim='\n');
Parameters
pch,puch,psch
Apointertoacharacterarray.
nCount
Themaximumnumberofcharacterstostore,includingtheterminatingNULL.
delim
Thedelimitercharacter(defaultstonewline).
Remarks
Extractscharactersfromthestreamuntileitherthedelimiterdelimisfound,thelimitnCount–1isreached,orendoffileisreached.Thecharactersarestoredinthespecifiedarrayfollowedbyanullterminator.Ifthedelimiterisfound,itisextractedbutnotstored.
Thegetfunction,incontrast,neitherextractsnorstoresthedelimiter.
istreamOverview|InputStreamClasses
SeeAlsoistream::get,istream::read
basic_istream::getline
basic_istream&getline(E*s,streamsizen);
basic_istream&getline(E*s,streamsizen,Edelim);
Thefirstoftheseunformattedinputfunctionsreturnsgetline(s,n,widen('\n')).
Thesecondfunctionextractsupton-1elementsandstorestheminthearraybeginningats.ItalwaysstoresE(0)afteranyextractedelementsitstores.Inorderoftesting,extractionstops:
Atendoffile.
Afterthefunctionextractsanelementthatcomparesequaltodelim,inwhichcasetheelementisneitherputbacknorappendedtothecontrolledsequence.
Afterthefunctionextractsis.max_size()elements.
Ifthefunctionextractsnoelements,itcallssetstate(failbit).Inanycase,itreturns*this.
|