91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言之scanf函數

發布時間:2020-07-20 19:55:40 來源:網絡 閱讀:162 作者:師趣妮 欄目:編程語言
  • scanf()--------按照指定格式接受用戶輸入(工作原理理解要點:正則表達式)

    格式:

int num1= -1,num2 = -1;
scanf("%i[間隔符]%i",&num1,&num2);    
/*
    %var指向變量在內存的詳細地址,獲得用戶輸入,直接將值寫進指定內存空間中;
    [間隔符]可省略,省略后,C語言默認以空白字符分隔用戶輸入的變量值;如果不為空,則要求用戶必須按照指定格式輸入,否則變量未必能夠全部接受到用戶輸入的值;
    C語言默認以\n即換行符結束輸入;
    C語言默認%i此類的占位符可以進行無限匹配,直至匹配失敗,默認用戶變量值輸入結束;
    接收用戶輸入過程:當C獲得用戶從鍵盤的輸入后,首先會將輸入內容保存到一個輸入緩存區內,強調保存到輸入緩存區的內容包括用戶輸入的所有字符,當然空白字符也包括在其中,
        然后會以格式控制字符串匹配緩存區內的內容.如上例,首先會%i匹配緩存區內的內容,當%i進行匹配的時候,如間隔符為空,其首先遇到空白字符時,會自動忽略,再次遇到空白
        字符,則結束num1的值得獲取,開始先一個變量的獲取;當間隔符不為空,%i會匹配到間隔符時,結束獲取,開始下一個變量的獲取.
*/
int num = -1;
char char_value;
scanf("%i[間隔符]%c",&num,&char_value);
/*
    %c可以匹配任何單字節字符,其中也包括空白字符;
    所以當將用戶輸入存入緩存區后,如果間隔符為空,C默認以空白字符分隔不同變量輸入的值.首先C會以%i匹配緩存內的內容,在沒有匹配到值之前,遇到的空白字符皆會自動忽略,直至匹
        配到值,再次遇到空白字符是,結束第一個變量值得獲取,也即以為除了第一個變量值之外,變量值之后的空白字符和第二個變量的值仍然保存在空白字符區內,C會%c匹配剩余字符,
        由于空白字符也是一個字符,且%c只能匹配一個單字節字符,所以%c匹配一個空白字符后,整個匹配過程結束,而%c卻沒有匹配到自己本應匹配到的值.解決辦法:輸入的兩個變量的值
        緊挨不留空白;
*/
printf("請輸入一個數字:\n");
int num = -1;
scanf("%i",&num);
prinf("請輸入一個字符:\n");
char char_value;
scanf("%c",&char_value);
printf("num = %i,%char_value = %c",num,char_value);
/*
    當按照如上格式,分兩次分別獲得輸入,且后面的一次輸入為字符時,結果就會發現,第二個scanf函數根本就沒有運行,直接就輸出了,且char_value的值為空;
    其原因在與當緩存區內有值時,C就不會要求用戶輸入,直接拿緩存區內的值去和%c進行匹配,由于在獲取完第一次輸入后,緩存區內至少還有一個\n,所以%c與\n匹配成功,直接進行輸出,
    不再需要用戶輸入.當然,當第二次獲得的輸入為整型,就不存在上述過程了.
*/



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海盐县| 连江县| 合阳县| 于都县| 东兴市| 横山县| 冷水江市| 南丹县| 都昌县| 凤冈县| 鹤峰县| 清徐县| 新沂市| 马公市| 攀枝花市| 天长市| 玛纳斯县| 临湘市| 新闻| 平和县| 兴安县| 荃湾区| 民权县| 盐池县| 塔河县| 繁峙县| 临清市| 濉溪县| 南安市| 泉州市| 依兰县| 九江市| 呼和浩特市| 扎赉特旗| 临邑县| 常宁市| 龙南县| 天镇县| 洛浦县| 三门峡市| 南皮县|