<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一.單字節操作 > `is` 表示輸入流,`os` 表示輸出流 | 函數 | 含義 | | -------------------------- | ------------------------------------------------------------ | | `istream &is.get(char &ch)` | 從輸入流中讀取一個字節存入 `ch`。 | | `int is.get()` | 從輸入流中讀取一個字節。 | | `ostream &is.put(char ch)` | 將字符輸出到流中。 | | `ostream &is.putback(char ch)` | 將字符放回到流中。 | | `istream &is.unget();` | 將 `is` 向后移動一個字節,使得最后讀取的值回到流中。 | | `int is.peek();` | 將下一個字節作為 `int`返回,但不從流中刪除。| ### 將字符放回流中 + `peek` 返回輸入流中下一一個字符的副本,但不會將它從流中刪除,`peek` 返回的值仍然留在流中。 + `unget` 使得輸入流向后移動,從而最后讀取的值又回到流中。即使我們不知道最后從流中讀取什么值,仍然可以調用 `unget` 。 + `putback` 是更特殊版本的 `unget` : 它退回從流中讀取的最后一個值,但它接受一個參數,此參數必須與最后讀取的值相同。 一般情況下, 在讀取下一個值之前,標準庫保證我們可以退回最多一個值。 ## 二.多字節操作 | 函數 | 含義 | | -------------------------- | ------------------------------------------------------------ | | `istream &is.get(char *start,int size,char ch = '\n')` | 從 `is` 中讀取最多`size` 個字節,并保存在字符數組中,字符數組的起始地址由 `start` 給出。如果遇到了 `ch` ,則將其留在輸入流中,不讀取出來存入 `sink`。 | | `istream &is.getline(char *start,int size,char ch = '\n')` | 類似第一個函數,但會將 `ch` 丟掉。| | `istream &is.read(char *start,int size)` | 一般用于二進制操作。讀取 `size` 個字符到字符數組中。 | | `ostream &is.write(char *source,int size)` | 一般用于二進制操作。寫入 `size` 個字符到流中。 | | `int is.gcount()` | 返回上一個低級I/O操作中讀取的字符個數。| | `istream &is.ignore(int n = 1,char ch = EOF)` | 跳過輸人流中 `n` 個字符,或在遇到指定的終止字符 `ch` 時提前結束(也跳過終止字符)| ### 1.get 和 getline 的聯系和區別 1. **聯系** `get`和`getline`函數接受相同的參數,它們的行為類似但不相同。在兩個函數中, `start` 都是 `char` 數組,用來保存數據。兩個函數都一直讀取數據,直至下面條件之一發生: + 已讀取了 `size-1` 個字符 + 遇到了文件尾 + 遇到了分隔符 2. **區別** + `get` 遇到 `ch`時 ,指針停在終止字符。 + `getline` 遇到 `ch`時 ,指針停在終止字符的下一個字符。 哪個函數都不會將分隔符保存在字符數組中。 | 函數或對象 | 讀取方式 | 終止字符 | 遇終止字符的處理方式 | | ---- | ---- | ---- | --------- | | cin.get | 逐個字符讀取 |可自行設定,默認是 `\n` |指針停在終止字符| | cin.getline | 逐行讀取 |可自行設定,默認是 `\n` |指針停在終止字符的下一位| | cin | 逐個量讀取 |空白字符(空格 Tab 回車)|指針停在終止字符的下一位| #### 例1 ```c++ #include <iostream> using namespace std; int main() { char test[100]; cin.get(test,100,'/'); cout<<test; cin.getline(test,100,'/'); cout<<test; return 0; } ``` >[test] >Hello World!/[按下Enter] >Hello World! >Press any key to continue >[info]第二次輸入時 `getline`一開始讀取就因遇到`'/'`而終止了。所以并不需要用戶輸入。 ### 2.字符串對象的輸入 | 函數 | 含義 | | -------------------------- | ------------------------------------------------------------ | | `istream &getline(istream &is,string &s,char ch = '\n')` | 從 `is` 中讀取字符并保存到字符串對象,如果遇到了 `ch` ,則將其留在輸入流中,不讀取出來。 |
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看