有誰可以解釋一下while( scanf 的用法嗎

時間 2021-06-02 01:04:23

1樓:邱昊宇

正常情況是寫成 while (scanf(...) != EOF) 的,意思是無論如何讀到輸入末尾為止。

然鵝我開啟標頭檔案確認過了,EOF 就是 -1這個我查過的,-1 的補碼是全 1,所以取反正好就是 0你看,原地取反就乙個操作,!= EOF 是兩個數之間做比較,光想想就慢多了,是個瓶頸

你看,~ 比 != EOF 寫起來短多了,要爭分奪秒吖你看,沒咱這知識水平的人都看不懂 ,就會不明覺厲,多專業!

所以就寫成 ~scanf 了。

(我真的是在反諷……)

2樓:Super桓

你確定scanf後面沒有括號然後引數呼叫嗎?

第一類,scanf是個普通的變數,那麼此時就相當於對scanf這個變數的值做按位取反操作,若操作後結果不為0則一直迴圈。

第二類,指C庫函式的scanf格式化IO函式,那麼此時應該是對這個函式的位址進行按位取反操作,效果同第一類。

第三類,scanf後面是有括號的,那麼就是對scanf運算的結果做按位取反操作,效果同第一類。scanf的返回值是scanf寫入變數的個數。換而言之,也就是scanf寫入變數個數為0的時候,則一直迴圈。

3樓:溫sir

scanf返回的是成功讀取的引數的個數,如果是EOF就表示在沒有讀取到任何引數時就已經遇到輸入錯誤(如遇到檔案尾)

~是按位取反

所以while(~scanf)就是如果返回值不為-1(EOF)則繼續迴圈,否則(讀到檔案尾)則退出迴圈。

EOF通常用-1表示,但c標準似乎沒有定義。所以正確的寫法應該是while (EOF != scanf(...))

有誰能解釋一下這個嗎?

成柏 可以換乙個思路,遊客其實就是障眼用的。假設沒有遊客。旅店老闆拿著賭徒的千元欠條給屠夫,說咱倆的帳清了,賭徒欠我1000元,你找他要。於是屠夫拿著賭徒的欠條找農夫說,你把我給你寫的欠條還給我,我給你賭徒的欠條你找他要錢,以後咱倆互不相欠。然後農夫帶著賭徒的欠條又找到了飼料商說,我欠你的錢你找賭徒...

有誰可以解釋一下殺豬盤和資金盤的區別嗎?

布魯托 殺豬盤就是一般詐騙,大多是感情詐騙,讓你將資金投入不論是賭博 投資的專案,是完全拿不回來的!資金盤也是詐騙,但不同於殺豬盤的是,資金盤前期投入的資金可能還能拿的回來,但是後期還是會圈一波的,如果你進場時機點正確 不貪心 運氣好的話還是有機率不被圈錢的。 你說我是那種人嗎 資金盤周期短入坑的都...

哪位大佬可以幫忙解釋一下這段命令?

C記的標準acl尾巴隱含拒絕所有,第二行多此一舉。這事幹多了,容易導致TCAM溢位,之後的查詢全是cpu做,處理器容易炸掉 意思樓上講了,這裡僅作實際參考補充。 Sean Router config ip access list standard cisco 建立名為cisco的標準型訪問控制列表 ...