第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求教scanf函數(shù)的用法,這段程序到底發(fā)生了什么?

求教scanf函數(shù)的用法,這段程序到底發(fā)生了什么?

C
蕪湖不蕪 2018-11-13 14:26:39
這段程序是,阻塞,然后等待你輸入一個整數(shù),然后原樣輸出,然后再阻塞,如此循環(huán)。(編譯器:VS2005)#include<stdio.h>int main(){    int i;    while(1)     {        puts("請輸入數(shù)字");        scanf("%d", &i);        printf("以整數(shù)輸出這個值:%d\n", i);     } }但實(shí)際上如果輸入的字母,再循環(huán)回來的時候就不會阻塞,而是會瘋狂的循環(huán)下去……百度一下,發(fā)現(xiàn)scanf函數(shù)會從輸入緩存(不太懂這是什么東西)中拿走一段數(shù)據(jù),如果我輸入的是數(shù)字的話這個操作就會清空輸入緩存,當(dāng)再次運(yùn)行scanf函數(shù)的時候如果輸入緩存是空的,就會產(chǎn)生一個阻塞。然而還是不明白輸入字母的情況下發(fā)生了什么。
查看完整描述

1 回答

?
阿晨1998

TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個贊

好吧,最后還是自己找到了答案……

scanf還有一個特點(diǎn)就是:輸入緩存中的字符無法匹配格式化說明符的時候,會立即return掉,該緩存字符也不會被刪除。
然后配合上面說的特點(diǎn):只有輸入緩存是空的的時候,才會阻塞,否則不會阻塞。


查看完整回答
反對 回復(fù) 2018-11-13
  • 1 回答
  • 0 關(guān)注
  • 510 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號