<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>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                引言:scanf函數雖然是學習C語言時比較早就接觸的一個函數,但在使用過程中,發現真正掌握它卻并不容易。本文就通過各種例子來詳細的總結一下該函數的各種用法,假設它的調用格式為 scanf("<格式化字符串>",<地址表>)。 **1、一般使用scanf函數時都是為某個變量賦值,不考慮它的返回值。但是任何函數都是需要返回的(即使返回類型用void,也可以認為只是調用了return語句,只是并沒有返回什么東西而已),同樣的scanf函數也是有返回的,它的返回值是成功讀取變量的個數。如果有一個輸入與變量格式不匹配,那么返回值為0。如:** ~~~ scanf("%d %d", &num1, &num2); ~~~ 如果輸入兩個中間有空格隔開的數字(如2 3),那么它的返回值是2。如果輸入一個浮點數一個整數,則返回值是1。如果輸入一個字符一個整數,則返回值是0。 **2、scanf函數的<格式化字符串>與后面的<地址表>是必須嚴格匹配的。注意,是嚴格匹配,可以說不能有絲毫差別,但對于連續多個空格可以等同于一個空格。如:** ~~~ scanf("%d, %d", &num1, &num2); ~~~ 要想輸入正確,必須輸如一個整數,然后輸入一個逗號(,),之后是第二個整數。最后是回車結束。 ~~~ scanf("%d,%d", &num1, &num2); ~~~ 該條語句中的<格式字符串>中的兩個%d之間沒有空格,如果此時輸入:12 ,13回車(12后面先有一個空格后由逗號),那么num2并不等于13。反過來,輸入:“12”、“,”、“空格”、“13”,則不會出現錯誤。 3、scanf函數用%s讀取一個字符串時,其實它只能讀取一個單詞,因為遇到空格時,它會認為輸入已結束。因此一般使用fgets來讀取一個字符串。如果想用scanf函數讀取帶有空格的字符串時,需要使用參數%[ ]來完成,它的意思是讀入一個字符集合。[ ]是個集合的標志,%[ ]特指讀入此集合所限定的那些字符,比如%[A-Z]是輸入大寫字母,一旦遇到不在此集合的字符便停止。如果集合的第一個字符是“^”,這說明讀取不在"^"后面集合的字符,既遇到"^"后面集合的字符便停止(這就是scanf函數里的正則表達式應用)。注意:此時讀取的字符串是可以含有空格的。如: ~~~ scanf("1123%s",&str); ~~~ 輸入:1123aaabb 時str為 aaabb,但是,輸入 24aabbdd時,?? 會出錯,因為1123必須進行嚴格匹配。 ~~~ scanf("%[^\n]", &str); ~~~ 此時輸入fdjkf fkdjf jdkf,然后輸入回車,就給str賦值為fdjkf fkdjf jdkf。 **scanf("%[A-Z]",&str);輸入除A到Z的任何字符(包括空格、回車)都會停止。** **4、對于下面兩條語句** ~~~ scanf("%d ", &num);/*scanf("%d\n", &num);*/ printf("%d",num); ~~~ 我們輸入一個整數后,無論在輸入多少個空格、回車、Tab,都沒有輸出;但是當再次輸入非空白字符時,如輸入2 然后輸入空格然后輸入4,最后輸入回車,則會有輸出。 **5、對于scanf函數的%c格式轉換符,可以接受任何的非空白字符或空白字符(包括空格、回車、Tab甚至是F2這樣的字符)。** ~~~ char str; scanf("%c", &str); printf("str = %c\n", str); ~~~ 如果輸入:空格……/*……代表任意空白字符或非空白字符*/,則str被賦值為空格。 **如果輸入:回車,則str被立即賦值為換行字符‘\n’。** **如果輸入:fjdkfj,則str被賦值為f,f后面的jdkfj丟棄。**
                  <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>

                              哎呀哎呀视频在线观看