[英]What exactly happens when I input a string “abcd” to scanf(“%d”, &var)?
輸入一個字符串到
scanf("%d",&var) returns 0.
還有一個類似的問題在這里 ,但沒有提供什么內部發生的解釋。 提供的是一種處理這種情況的方法。
GCC如何精確處理傳遞給scanf(“%d”,&var)的字符串,在這種情況下為什么返回值為0?
成功完成后, scanf
將返回成功匹配和分配的輸入項的數量; 如果早期匹配失敗,此數字可以為零。
在看到%d
格式字符串時, scanf
需要一個int
類型的數據。 當您輸入字符串代替int
, scanf
開始讀取輸入,看到字符時停止讀取並返回0
。
成功時,該函數返回已成功填充的參數列表的項目數。 因此,如果您不鍵入數字,則讀取的項目數將為0。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.