亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

關于scanf函數是怎么執行的?請問可以說一下scanf函數的執行細節嗎?

關于scanf函數是怎么執行的?請問可以說一下scanf函數的執行細節嗎?

C C#
慕容708150 2021-12-09 11:07:31
scanf是接收用戶輸入,程序這時候是否就停在這條語句?這個接收的過程是怎么樣的?用戶每輸入一個數,它立即接收還是等待用戶按回車鍵后一次性接收?它怎么識別用戶的輸入是否是正確的?
查看完整描述

3 回答

?
慕容森

TA貢獻1853條經驗 獲得超18個贊

按F10跳轉到scanf輸入函數斷點,進而按F11就如scanf函數。印象中是在一個.c文件里執行的中斷處理標準輸入輸出的過程,你可以按Alt+8看到其反匯編,其實是一些機器指令發送控制讓CPU進行執行的,具體匯編語言我是不太懂的??茨莻€也比較繁瑣,目前也不再流行去使用匯編語言,如果你感興趣的話,可以去了解C語言的編譯過程,編譯原理,這就相對更深了。
回到這個問題,接收過程講的差不多了。用戶輸入一個數,它應該說是被立即送到一個緩沖區去了。而不是立即接收,變量就獲得了值。這是C語言scanf函數的功能設定。它需要接收一個標志一個數據輸入完成,可以是空格,可以是回車,或者你給定了的格式,用逗號或者其他,那么就取出了一個數據。結束一個數據的輸入。總的scanf函數執行過程,是一個系統緩存入棧出棧的過程。

scanf輸入是否正確,是按其格式來判斷的,百科名片上有些解析,比如
scanf("%d%d",&a,&b);
如果兩個數輸入的都不是整形,那么就是0
while(scanf("%d",&a)!=EOF)這是一種判斷輸入是否正確的方式

查看完整回答
反對 回復 2021-12-12
?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

當程序中出現scanf這條語句的時候,系統會停留在這等待用戶輸入。怎樣接收要看你是怎樣的輸入格式比如scanf(“%d %d”),輸入一個字符按 一次空格,如果中間強制用逗號格開的話,輸入的時候就要用逗號了。當輸入完成時候,按回車即輸入完畢,數據儲存在變量里。
如果要判斷用戶是否輸入正確,在scanf語句下面加上判斷語句就可以了if else,如果需要用戶重新輸入的話,就需要一個循環語句while

查看完整回答
反對 回復 2021-12-12
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

加一個頭文件#include<string>
然后直接string year;后面的就是string name; string grades;什么的,
然后還是用cin接收就行了啊
接收完了你用一個函數去判斷是不是數字或者字母

查看完整回答
反對 回復 2021-12-12
  • 3 回答
  • 0 關注
  • 457 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號