Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

还是cin.getline好

Posted by hawk at 2005-05-28 12:45:25 on Problem 1107
In Reply To:Re:关于getline函数的使用问题 Posted by:xfxyjwf at 2005-05-28 12:44:34
> template<class _E, class _Tr, class _A> inline
>     basic_istream<_E, _Tr>& __cdecl getline(basic_istream<_E, _Tr>& _I,
>         basic_string<_E, _Tr, _A>& _X, const _E _D)
>     {typedef basic_istream<_E, _Tr> _Myis;
>     ios_base::iostate _St = ios_base::goodbit;
>     bool _Chg = false;
>     _X.erase();
>     const _Myis::sentry _Ok(_I, true);
>     if (_Ok)
>         {_TRY_IO_BEGIN
>         _Tr::int_type _C = _I.rdbuf()->sgetc();
>         for (; ; _C = _I.rdbuf()->snextc())
>             if (_Tr::eq_int_type(_Tr::eof(), _C))
>                 {_St |= ios_base::eofbit;
>                 break; }
>             else if (_Tr::eq((_E)_C, _D))
>                 {_Chg = true;
>                 _I.rdbuf()->snextc();
> 				/*
> 				关键是这个东西用的不好.
> 				snextc:Advances the get pointer, then returns the next character.
> 				本来应该是下面这个:
> 				stossc:Moves the get pointer forward one position, but does not return a character.
> 				*/
>                 break; }
>             else if (_X.max_size() <= _X.size())
>                 {_St |= ios_base::failbit;
>                 break; }
>             else
>                 _X += _Tr::to_char_type(_C), _Chg = true;
>         _CATCH_IO_(_I); }
>     if (!_Chg)
>         _St |= ios_base::failbit;
>     _I.setstate(_St);
>     return (_I); }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator