c語言scanf的兩個問題

時間 2022-12-19 20:05:08

1樓:匿名使用者

對於;123abc789《回車》

是因為你的輸入控制格式,兩邊是%d,即整數,中間三個是字元。

因此輸入的時間是將123賦值給了a,abc分別賦值給bcd,789賦值給d

對於:123《回車》abc789《回車》,首先必須知道,利用scanf輸入的時間,回車是作為有效的字元輸入的這樣其實是a = 123, b = 回車(也是空), c = a, d = b, e最後不一定是3129,應該是乙個隨機值(因為將c789按照整數賦值不知道結果是什麼)

2樓:在水一方

中%d表明a是用存放整形資料的,注意這裡%d沒有限定應該存放多少位整形,故在輸入字元a出現前所有數字都應存放在a裡面。當有字元輸入時自動切換存到b中,因為%c格式表明b是用來存放字元的,後面同理可證。

至於如果輸入123《回車》abc789《回車》,結果為a=123,b=,c=a,d=b,e=3129 ,那是因為在用%c格式輸入字元時,空格字元和「轉義字元」都作為有效字元輸入,而且乙個%c只能輸入或輸出乙個字元,故有a=123,b=,c=a,d=b。至於e=3129 ,那是因為位址&e存放的是c789,當用%d格式輸出時就轉換成整形3129。在輸入資料(注意是在%d格式下)後輸入《回車》鍵表示該資料輸入結束。

不知道閣下認為對不?

C語言問題,關於Scanf的,空格問題

scanf c answer 與 scanf c answer 後者只是在 前多了個空格,似乎沒有什麼區別,但使用起來區別是很大的。scanf 作單字元輸入時規定只接收乙個字元,但它卻把回車符也作為字元對待的。這就造成程式中只有乙個輸入字元的scanf 語句時,問題還不大,但如果後面還跟著第二個sc...

關於c語言的scanf函式的逗號問題

對於scanf 函式,如果格式控制串裡有逗號 或其他非格式符號 鍵盤輸入時,必須嚴格按照控制串的內容鍵入,不能隨意輸入。如scanf a d,b d a,b 響應輸入是a xx,b xx xx是整形數 scanf 函式還有一個特點較為常用,該函式會將白字元 空格 作為資料間的分隔符,比如scanf ...

c語言裡關於迴圈的問題,兩個個關於C語言迴圈跳出的問題?

飛貓警長 從上面的 來看,程式的意圖好像是從鍵盤輸入若干個數字,然後輸出它們的和。這種情況一般有兩種解決方法,乙個是在輸入前確定數字個數,另乙個是設定乙個 或多個 特別的數字 或其他字元 作為輸入結束條件。上面的 屬於第二種解決方案,當輸入的數字大於或等於99時,迴圈將結束。對於不知道迴圈次數的情況...