[問題] printf輸出的問題

看板C_and_CPP作者 ( )時間16年前 (2009/03/23 15:24), 編輯推噓5(503)
留言8則, 6人參與, 最新討論串1/2 (看更多)
不好意思 小弟有問題想請教 環境為 WinXP, Dev-C++ 4.9.9.2 Source code 如下 #include<stdio.h> #include<stdlib.h> int main(void) { printf("a=%d,b=%f,c=%f\n",5,5.1,5.2); printf("a=%d,b=%d,c=%f\n",5,5.1,5.2); system("pause"); return 0; } 輸出結果為: a=5,b=5.100000,c=5.200000 a=5,b=1717986918,c=-925596534325187160000000000000000000000000000000000000000000 00.000000 想請教各位前輩們 為什麼修改第二行printf中的b輸出的格式為%d後 就連c輸出的值也會被影響到呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.114.235

03/23 23:26, , 1F
因為你把它搞壞了>.^
03/23 23:26, 1F

03/23 23:27, , 2F
所以不是只影響b的輸出而已,連c的輸出也會影響到嗎?
03/23 23:27, 2F

03/24 00:20, , 3F
你沒事吧? 那有人這樣搞的...
03/24 00:20, 3F

03/24 00:28, , 4F
不過真的很怪 有人知道為什麼會這樣嗎?
03/24 00:28, 4F

03/24 00:41, , 5F
不過這怪在哪?! 這不是就是遊戲規則嗎?
03/24 00:41, 5F

03/24 00:48, , 6F
沒有什麼怪問題 記住 win 平台 printf 只吃 double 就好
03/24 00:48, 6F

03/24 01:02, , 7F
那為什麼c值會變這麼奇怪阿?
03/24 01:02, 7F

03/24 01:08, , 8F
因為其實 printf 根本不知道後面傳進來的是什麼鬼
03/24 01:08, 8F
文章代碼(AID): #19nwcpf1 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19nwcpf1 (C_and_CPP)