home *** CD-ROM | disk | FTP | other *** search
Wrap
IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) NNNNAAAAMMMMEEEE istream - formatted and unformatted input SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS _####_iiii_nnnn_cccc_llll_uuuu_dddd_eeee _<<<<_iiii_oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm_...._hhhh_>>>> _tttt_yyyy_pppp_eeee_dddd_eeee_ffff _llll_oooo_nnnn_gggg _ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff_,,,, _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss_;;;; _cccc_llll_aaaa_ssss_ssss _iiii_oooo_ssss _{{{{ _pppp_uuuu_bbbb_llll_iiii_cccc_:::: _eeee_nnnn_uuuu_mmmm _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr _{{{{ _bbbb_eeee_gggg_,,,, _cccc_uuuu_rrrr_,,,, _eeee_nnnn_dddd _}}}}_;;;; _eeee_nnnn_uuuu_mmmm _oooo_pppp_eeee_nnnn______mmmm_oooo_dddd_eeee _{{{{ _iiii_nnnn_,,,, _oooo_uuuu_tttt_,,,, _aaaa_tttt_eeee_,,,, _aaaa_pppp_pppp_,,,, _tttt_rrrr_uuuu_nnnn_cccc_,,,, _nnnn_oooo_cccc_rrrr_eeee_aaaa_tttt_eeee_,,,, _nnnn_oooo_rrrr_eeee_pppp_llll_aaaa_cccc_eeee _}}}} _;;;; _////_**** _ffff_llll_aaaa_gggg_ssss _ffff_oooo_rrrr _cccc_oooo_nnnn_tttt_rrrr_oooo_llll_llll_iiii_nnnn_gggg _ffff_oooo_rrrr_mmmm_aaaa_tttt _****_//// _eeee_nnnn_uuuu_mmmm _{{{{ _ssss_kkkk_iiii_pppp_wwww_ssss_====_0000_1111_,,,, _llll_eeee_ffff_tttt_====_0000_2222_,,,, _rrrr_iiii_gggg_hhhh_tttt_====_0000_4444_,,,, _iiii_nnnn_tttt_eeee_rrrr_nnnn_aaaa_llll_====_0000_1111_0000_,,,, _dddd_eeee_cccc_====_0000_2222_0000_,,,, _oooo_cccc_tttt_====_0000_4444_0000_,,,, _hhhh_eeee_xxxx_====_0000_1111_0000_0000_,,,, _ssss_hhhh_oooo_wwww_bbbb_aaaa_ssss_eeee_====_0000_2222_0000_0000_,,,, _ssss_hhhh_oooo_wwww_pppp_oooo_iiii_nnnn_tttt_====_0000_4444_0000_0000_,,,, _uuuu_pppp_pppp_eeee_rrrr_cccc_aaaa_ssss_eeee_====_0000_1111_0000_0000_0000_,,,, _ssss_hhhh_oooo_wwww_pppp_oooo_ssss_====_0000_2222_0000_0000_0000_,,,, _ssss_cccc_iiii_eeee_nnnn_tttt_iiii_ffff_iiii_cccc_====_0000_4444_0000_0000_0000_,,,, _ffff_iiii_xxxx_eeee_dddd_====_0000_1111_0000_0000_0000_0000_,,,, _uuuu_nnnn_iiii_tttt_bbbb_uuuu_ffff_====_0000_2222_0000_0000_0000_0000_,,,, _ssss_tttt_dddd_iiii_oooo_====_0000_4444_0000_0000_0000_0000 _}}}}_;;;; _////_//// _aaaa_nnnn_dddd _llll_oooo_tttt_ssss _oooo_ffff _oooo_tttt_hhhh_eeee_rrrr _ssss_tttt_uuuu_ffff_ffff_,,,, _ssss_eeee_eeee _iiii_oooo_ssss_((((_3333_CCCC_++++_++++_)))) _...._...._.... _}}}} _;;;; _cccc_llll_aaaa_ssss_ssss _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm _:::: _pppp_uuuu_bbbb_llll_iiii_cccc _iiii_oooo_ssss _{{{{ _pppp_uuuu_bbbb_llll_iiii_cccc_:::: _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;; _iiii_nnnn_tttt _gggg_cccc_oooo_uuuu_nnnn_tttt_((((_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_((((_cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,,_iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_((((_cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_&&&& _ssss_bbbb_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm _====_''''_\\\\_nnnn_''''_))))_;;;; _iiii_nnnn_tttt _gggg_eeee_tttt_((((_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_llll_iiii_nnnn_eeee_((((_cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _gggg_eeee_tttt_llll_iiii_nnnn_eeee_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** _pppp_tttt_rrrr_,,,, _iiii_nnnn_tttt _llll_eeee_nnnn_,,,, _cccc_hhhh_aaaa_rrrr _dddd_eeee_llll_iiii_mmmm_====_''''_\\\\_nnnn_''''_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _iiii_gggg_nnnn_oooo_rrrr_eeee_((((_iiii_nnnn_tttt _llll_eeee_nnnn_====_1111_,,,,_iiii_nnnn_tttt _dddd_eeee_llll_iiii_mmmm_====_EEEE_OOOO_FFFF_))))_;;;; _iiii_nnnn_tttt _iiii_pppp_ffff_xxxx_((((_iiii_nnnn_tttt _nnnn_eeee_eeee_dddd_====_0000_))))_;;;; _iiii_nnnn_tttt _pppp_eeee_eeee_kkkk_((((_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk_((((_cccc_hhhh_aaaa_rrrr_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _rrrr_eeee_aaaa_dddd_((((_cccc_hhhh_aaaa_rrrr_**** _ssss_,,,, _iiii_nnnn_tttt _nnnn_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _rrrr_eeee_aaaa_dddd_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** _ssss_,,,, _iiii_nnnn_tttt _nnnn_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _ssss_eeee_eeee_kkkk_gggg_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _ssss_eeee_eeee_kkkk_gggg_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff_,,,, _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr_))))_;;;; _iiii_nnnn_tttt _ssss_yyyy_nnnn_cccc_((((_))))_;;;; _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss _tttt_eeee_llll_llll_gggg_((((_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_cccc_hhhh_aaaa_rrrr_****_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_ssss_hhhh_oooo_rrrr_tttt_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_iiii_nnnn_tttt_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_llll_oooo_nnnn_gggg_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_ffff_llll_oooo_aaaa_tttt_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_dddd_oooo_uuuu_bbbb_llll_eeee_&&&&_))))_;;;; PPPPaaaaggggeeee 1111 IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_****_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _((((_****_))))_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_))))_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>_((((_iiii_oooo_ssss_&&&& _((((_****_))))_((((_iiii_oooo_ssss_&&&&_))))_))))_;;;; _}}}}_;;;; _cccc_llll_aaaa_ssss_ssss _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn _:::: _pppp_uuuu_bbbb_llll_iiii_cccc _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm _{{{{ _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn_((((_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_====_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_))))_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_====_((((_ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_****_))))_;;;; _}}}}_;;;; _eeee_xxxx_tttt_eeee_rrrr_nnnn _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn _cccc_iiii_nnnn_;;;; _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _wwww_ssss_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_))))_;;;; _iiii_oooo_ssss_&&&& _dddd_eeee_cccc_((((_iiii_oooo_ssss_&&&&_)))) _;;;; _iiii_oooo_ssss_&&&& _hhhh_eeee_xxxx_((((_iiii_oooo_ssss_&&&&_)))) _;;;; _iiii_oooo_ssss_&&&& _oooo_cccc_tttt_((((_iiii_oooo_ssss_&&&&_)))) _;;;; DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmms support interpretation of characters fetched from an associated _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff. These are commonly referred to as input or extraction operations. The _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm member functions and related functions are described below. In the following descriptions assume that - _i_n_s is an _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm. - _i_n_s_w_a is an _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn. - _i_n_s_p is a _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_****. - _c is a _cccc_hhhh_aaaa_rrrr_&&&& - _d_e_l_i_m is a _cccc_hhhh_aaaa_rrrr. - _p_t_r is a _cccc_hhhh_aaaa_rrrr_**** or _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_****. - _s_b is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_bbbb_uuuu_ffff_&&&&. - _i, _n, _l_e_n, _d, and _n_e_e_d are _iiii_nnnn_tttts. - _p_o_s is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_pppp_oooo_ssss. - _o_f_f is a _ssss_tttt_rrrr_eeee_aaaa_mmmm_oooo_ffff_ffff. - _d_i_r is a _ssss_eeee_eeee_kkkk______dddd_iiii_rrrr. - _m_a_n_i_p is a function with type _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&& _((((_****_))))_((((_iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_&&&&_)))). CCCCoooonnnnssssttttrrrruuuuccccttttoooorrrrssss aaaannnndddd aaaassssssssiiiiggggnnnnmmmmeeeennnntttt:::: _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm_((((_s_b_)))) Initializes _iiii_oooo_ssss state variables and associates buffer _s_b with the _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm.. _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm______wwww_iiii_tttt_hhhh_aaaa_ssss_ssss_iiii_gggg_nnnn_((((_)))) Does no initialization. PPPPaaaaggggeeee 2222 IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) _i_n_s_w_a_====_s_b Associates _s_b with _i_n_s_w_a and initializes the entire state of _i_n_s_w_a. _i_n_s_w_a_====_i_n_s Associates _i_n_s_----_>>>>_rrrr_dddd_bbbb_uuuu_ffff_((((_)))) with _i_n_s_w_a and initializes the entire state of _i_n_s_w_a. IIIInnnnppppuuuutttt pppprrrreeeeffffiiiixxxx ffffuuuunnnnccccttttiiiioooonnnn:::: _i _==== _i_n_s_...._iiii_pppp_ffff_xxxx_((((_n_e_e_d_)))) If _i_n_s's error state is non-zero, returns zero immediately. If necessary (and if it is non-null), any _iiii_oooo_ssss tied to _i_n_s is flushed (see the description _iiii_oooo_ssss_::::_::::_tttt_iiii_eeee_((((_)))) in _iiii_oooo_ssss(3C++)). Flushing is considered necessary if either _n_e_e_d_====_====_0000 or if there are fewer than _n_e_e_d characters immediately available. If _iiii_oooo_ssss_::::_::::_ssss_kkkk_iiii_pppp_wwww_ssss is set in _i_n_s_...._ffff_llll_aaaa_gggg_ssss_((((_)))) and _n_e_e_d is zero, then leading whitespace characters are extracted from _i_n_s. _iiii_pppp_ffff_xxxx_((((_)))) returns zero if an error occurs while skipping whitespace; otherwise it returns non-zero. Formatted input functions call _iiii_pppp_ffff_xxxx_((((_0000_)))), while unformatted input functions call _iiii_pppp_ffff_xxxx_((((_1111_)))); see below. FFFFoooorrrrmmmmaaaatttttttteeeedddd iiiinnnnppppuuuutttt ffffuuuunnnnccccttttiiiioooonnnnssss ((((eeeexxxxttttrrrraaaaccccttttoooorrrrssss)))):::: _i_n_s_>>>>_>>>>_x Calls _iiii_pppp_ffff_xxxx_((((_0000_)))) and if that returns non-zero, extracts characters from _i_n_s and converts them according to the type of _x. It stores the converted value in _x. Errors are indicated by setting the error state of _i_n_s. _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt means that characters in _i_n_s were not a representation of the required type. _iiii_oooo_ssss_::::_::::_bbbb_aaaa_dddd_bbbb_iiii_tttt indicates that attempts to extract characters failed. _i_n_s is always returned. The details of conversion depend on the values of _i_n_s's format state flags and variables (see _iiii_oooo_ssss(3C++)) and the type of _x. Except that extractions that use width reset it to 0, the extraction operators do not change the value of _oooo_ssss_tttt_rrrr_eeee_aaaa_mmmm's format state. Extractors are defined for the following types, with conversion rules as described below. _cccc_hhhh_aaaa_rrrr_****, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_**** Characters are stored in the array pointed at by _x until a whitespace character is found in _i_n_s. The terminating whitespace is left in _i_n_s. If _i_n_s_...._wwww_iiii_dddd_tttt_hhhh_((((_)))) is non-zero it is taken to be the size of the array, and no more than _i_n_s_...._wwww_iiii_dddd_tttt_hhhh_((((_))))_----_1111 characters are extracted. A terminating null character (0) is always stored (even when nothing else is done because of _i_n_s's error status). _i_n_s_...._wwww_iiii_dddd_tttt_hhhh_((((_)))) is reset to 0. PPPPaaaaggggeeee 3333 IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) _cccc_hhhh_aaaa_rrrr_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _cccc_hhhh_aaaa_rrrr_&&&& A character is extracted and stored in _x. _ssss_hhhh_oooo_rrrr_tttt_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _ssss_hhhh_oooo_rrrr_tttt_&&&&, _iiii_nnnn_tttt_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _iiii_nnnn_tttt_&&&&, _llll_oooo_nnnn_gggg_&&&&, _uuuu_nnnn_ssss_iiii_gggg_nnnn_eeee_dddd _llll_oooo_nnnn_gggg_&&&& Characters are extracted and converted to an integral value according to the conversion specified in _i_n_s's format flags. Converted characters are stored in _x. The first character may be a sign (_++++ or _----). After that, if _iiii_oooo_ssss_::::_::::_oooo_cccc_tttt, _iiii_oooo_ssss_::::_::::_dddd_eeee_cccc, or _iiii_oooo_ssss_::::_::::_hhhh_eeee_xxxx is set in _i_n_s_...._ffff_llll_aaaa_gggg_ssss_((((_)))), the conversion is octal, decimal, or hexadecimal, respectively. Conversion is terminated by the first ``non-digit,'' which is left in _i_n_s. Octal digits are the characters '0' to '7'. Decimal digits are the octal digits plus '8' and '9'. Hexadecimal digits are the decimal digits plus the letters 'a' through 'f' (in either upper or lower case). If none of the conversion base format flags is set, then the number is interpreted according to C++ lexical conventions. That is, if the first characters (after the optional sign) are _0000_xxxx or _0000_XXXX a hexadecimal conversion is performed on following hexadecimal digits. Otherwise, if the first character is a _0000, an octal conversion is performed, and in all other cases a decimal conversion is performed. _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set if there are no digits (not counting the _0000 in _0000_xxxx or _0000_XXXX) during hex conversion) available. _ffff_llll_oooo_aaaa_tttt_&&&&, _dddd_oooo_uuuu_bbbb_llll_eeee_&&&& Converts the characters according to C++ syntax for a float or double, and stores the result in _x. _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set if there are no digits available in _i_n_s or if it does not begin with a well formed floating point number. The type and name (_oooo_pppp_eeee_rrrr_aaaa_tttt_oooo_rrrr_>>>>_>>>>) of the extraction operations are chosen to give a convenient syntax for sequences of input operations. The operator overloading of C++ permits extraction functions to be declared for user-defined classes. These operations can then be used with the same syntax as the member functions described here. _i_n_s_>>>>_>>>>_s_b If _iiii_oooo_ssss_...._iiii_pppp_ffff_xxxx_((((_0000_)))) returns non-zero, extracts characters from _iiii_oooo_ssss and inserts them into _s_b. Extraction stops when _EEEE_OOOO_FFFF is reached. Always returns _i_n_s. UUUUnnnnffffoooorrrrmmmmaaaatttttttteeeedddd iiiinnnnppppuuuutttt ffffuuuunnnnccccttttiiiioooonnnnssss:::: These functions call _iiii_pppp_ffff_xxxx_((((_1111_)))) and proceed only if it returns non-zero: _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_((((_p_t_r_,,,,_l_e_n_,,,,_d_e_l_i_m_)))) Extracts characters and stores them in the byte array beginning at _p_t_r and extending for _l_e_n bytes. Extraction stops when PPPPaaaaggggeeee 4444 IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) _d_e_l_i_m is encountered (_d_e_l_i_m is left in _i_n_s and not stored), when _i_n_s has no more characters, or when the array has only one byte left. _gggg_eeee_tttt always stores a terminating null, even if it doesn't extract any characters from _i_n_s because of its error status. _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set only if _gggg_eeee_tttt encounters an end of file before it stores any characters. _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_((((_c_)))) Extracts a single character and stores it in _c. _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_((((_s_b_,,,,_d_e_l_i_m_)))) Extracts characters from _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))) and stores them into _s_b. It stops if it encounters end of file or if a store into _s_b fails or if it encounters _d_e_l_i_m (which it leaves in _i_n_s). _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is set if it stops because the store into _s_b fails. _i_====_i_n_s_...._gggg_eeee_tttt_((((_)))). Extracts a character and returns it. _i is _EEEE_OOOO_FFFF if extraction encounters end of file. _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt is never set. _i_n_s_p_====_&&&&_i_n_s_...._gggg_eeee_tttt_llll_iiii_nnnn_eeee_((((_p_t_r_,,,,_l_e_n_,,,,_d_e_l_i_m_)))) Does the same thing as _i_n_s_...._gggg_eeee_tttt_((((_p_t_r_,,,,_l_e_n_,,,,_d_e_l_i_m_)))) with the exception that it extracts a terminating _d_e_l_i_m character from _i_n_s. In case _d_e_l_i_m occurs when exactly _l_e_n characters have been extracted, termination is treated as being due to the array being filled, and this _d_e_l_i_m is left in _i_n_s. _i_n_s_p_====_&&&&_i_n_s_...._iiii_gggg_nnnn_oooo_rrrr_eeee_((((_n_,,,,_d_)))) Extracts and throws away up to _n characters. Extraction stops prematurely if _d is extracted or end of file is reached. If _d is _EEEE_OOOO_FFFF it can never cause termination. _i_n_s_p_====_&&&&_i_n_s_...._rrrr_eeee_aaaa_dddd_((((_p_t_r_,,,,_n_)))) Extracts _n characters and stores them in the array beginning at _p_t_r. If end of file is reached before _n characters have been extracted, _rrrr_eeee_aaaa_dddd stores whatever it can extract and sets _iiii_oooo_ssss_::::_::::_ffff_aaaa_iiii_llll_bbbb_iiii_tttt. The number of characters extracted can be determined via _i_n_s_...._gggg_cccc_oooo_uuuu_nnnn_tttt_((((_)))). OOOOtttthhhheeeerrrr mmmmeeeemmmmbbbbeeeerrrrssss aaaarrrreeee:::: _i_====_i_n_s_...._gggg_cccc_oooo_uuuu_nnnn_tttt_((((_)))) Returns the number of characters extracted by the last unformatted input function. Formatted input functions may call unformatted input functions and thereby reset this number. _i_====_i_n_s_...._pppp_eeee_eeee_kkkk_((((_)))) Begins by calling _i_n_s_...._iiii_pppp_ffff_xxxx_((((_1111_)))). If that call returns zero or if _i_n_s is at end of file, it returns _EEEE_OOOO_FFFF. Otherwise it returns the next character without extracting it. PPPPaaaaggggeeee 5555 IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) _i_n_s_p_====_&&&&_i_n_s_...._pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk_((((_c_)))) Attempts to back up _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))). _c must be the character before _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer. (Unless other activity is modifying _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_)))) this is the last character extracted from _i_n_s.) If it is not, the effect is undefined. _pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk may fail (and set the error state). Although it is a member of _iiii_ssss_tttt_rrrr_eeee_aaaa_mmmm, _pppp_uuuu_tttt_bbbb_aaaa_cccc_kkkk never extracts characters, so it does not call _i_p_f_x. It will, however, return without doing anything if the error state is non-zero. _i_====_&&&&_i_n_s_...._ssss_yyyy_nnnn_cccc_((((_)))) Establishes consistency between internal data structures and the external source of characters. Calls _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))_----_>>>>_ssss_yyyy_nnnn_cccc_((((_)))), which is a virtual function, so the details depend on the derived class. Returns _EEEE_OOOO_FFFF to indicate errors. _i_n_s_>>>>_>>>>_mmmm_aaaa_nnnn_iiii_pppp Equivalent to _mmmm_aaaa_nnnn_iiii_pppp_((((_i_n_s_)))). Syntactically this looks like an extractor operation, but semantically it does an arbitrary operation rather than converting a sequence of characters and storing the result in _mmmm_aaaa_nnnn_iiii_pppp. A predefined manipulator, _w_s, is described below. MMMMeeeemmmmbbbbeeeerrrr ffffuuuunnnnccccttttiiiioooonnnnssss rrrreeeellllaaaatttteeeedddd ttttoooo ppppoooossssiiiittttiiiioooonnnniiiinnnngggg:::: _i_n_s_p_====_&&&&_i_n_s_...._ssss_eeee_eeee_kkkk_gggg_((((_o_f_f_,,,,_d_i_r_)))) Repositions _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer. See _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) for a discussion of positioning. _i_n_s_p_====_&&&&_i_n_s_...._ssss_eeee_eeee_kkkk_gggg_((((_p_o_s_)))) Repositions _i_n_s_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer. See _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) for a discussion of positioning. _p_o_s_====_i_n_s_...._tttt_eeee_llll_llll_gggg_((((_)))) The current position of _iiii_oooo_ssss_...._rrrr_dddd_bbbb_uuuu_ffff_((((_))))'s get pointer. See _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++) for a discussion of positioning. MMMMaaaannnniiiippppuuuullllaaaattttoooorrrr:::: _i_n_s_>>>>_>>>>_w_s Extracts whitespace characters. _i_n_s_>>>>_>>>>_d_e_c Sets the conversion base format flag to 10. See _iiii_oooo_ssss(3C++). _i_n_s_>>>>_>>>>_h_e_x Sets the conversion base format flag to 16. See _iiii_oooo_ssss(3C++). _i_n_s_>>>>_>>>>_o_c_t Sets the conversion base format flag to 8. See _iiii_oooo_ssss(3C++). PPPPaaaaggggeeee 6666 IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) IIIISSSSTTTTRRRREEEEAAAAMMMM((((3333CCCC++++++++)))) CAVEATS There is no overflow detection on conversion of integers. There should be, and overflow should cause the error state to be set. SSSSEEEEEEEE AAAALLLLSSSSOOOO _iiii_oooo_ssss(3C++), _ssss_bbbb_uuuu_ffff_...._pppp_uuuu_bbbb(3C++), _mmmm_aaaa_nnnn_iiii_pppp(3C++) PPPPaaaaggggeeee 7777