2011-06-04 82 views

回答

0

ASCII中NULL值的十進制值是0,所以如果你現在在程序中輸入它,它會結束。這與換行符不同(十進制10)。

在任何情況下,scanf()都會一直持續下去,直到你輸入一個值,所以你需要爲循環條件使用某種標記值,例如。如果您僅使用正數,請使用負數;如果你有一個上限,超出這個任意值。否則,你將不得不以其他方式做到這一點。輸入一個字符串並將其轉換爲一個int,如果它不是您的退出字符/字符串。

+0

對不起@尼爾,你指的是什麼 - 你能更具體嗎? – thelionroars1337 2011-06-04 10:13:19

+0

輸入0將結束循環,因爲這是NULL的十進制等值。 – thelionroars1337 2011-06-04 10:19:28

+0

對不起,我誤解了你,我以爲你的意思是進入NUL角色。 – 2011-06-04 10:23:52

0

如果你仔細想想,我敢打賭,你從來沒有見過一個真實世界的程序,提示你輸入這樣的信息。爲什麼?因爲要正確書寫它們幾乎是不可能的,甚至更難以正確使用。真實世界程序的工作方式是使用GUI或從文件/流中讀取輸入而無需提示。鑑於這個事實,我從來沒有理解爲什麼這麼多新手程序員想要提示用戶輸入。

話雖如此,你可以在代碼中輸入值來終止循環。所有的整數值是你程序的有效輸入嗎?如果是這樣,你需要一些其他的終止方式,比如輸入文件結束符。

+0

不,你是對的,我從來沒有見過任何真實世界的節目。我會嘗試EOF的方式。 – 2011-06-04 10:25:39