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)這是一種判斷輸入是否正確的方式

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

TA貢獻1865條經驗 獲得超7個贊
加一個頭文件#include<string>
然后直接string year;后面的就是string name; string grades;什么的,
然后還是用cin接收就行了啊
接收完了你用一個函數去判斷是不是數字或者字母
- 3 回答
- 0 關注
- 457 瀏覽
添加回答
舉報