→ bibo9901: 改成 scanf("%d ") 和 scanf("(%lf,%lf) ") 06/19 18:29
→ bibo9901: 然後 flush(stdin) 是 undefined behavior 06/19 18:31
還是沒辦法欸...
可是如果我其他的完全不動,
只把fflush拿掉
在把scanf第一個引數內的左括弧拿掉
scanf("%lf,%lf)",&num1,&num2);
這樣就會是正常的 不解......
※ 編輯: sr29 (59.115.159.237), 06/19/2015 21:01:45
→ bibo9901: 我意思是scanf 第一個參數,結尾加一個空白 @@ 06/19 21:35
→ sr29: 恩 我有加過了 第二個scanf也是一樣 結果還是無法orz 06/19 21:43
→ easyget: 從 16 行開始,有變更 如果大大有什麼問題,再發信問我 06/19 23:11
推 yvb: 改成空白放前面, 也就是 scanf(" (%lf,%lf)",... 這樣呢? 06/20 16:27
easyget大大跟yvb大大的方法我都試過了
結果都有跑出預期的結果
真的不懂為啥orz
懇請各位開示
( 從來沒遇過這種情形.... )
※ 編輯: sr29 (59.115.159.237), 06/20/2015 16:47:35
推 LPH66: 問題在於大部份的 %xx 會先吃掉空白再讀, 但非 % 字元不會 06/20 17:14
→ LPH66: 所以 ( 就真的只吃 ( 不吃空白, 於是輸入之間的空白就卡住 06/20 17:15
→ LPH66: 而在格式字串裡放空白則是一個空白吃全部連續的空白 06/20 17:15
→ LPH66: 這樣就把輸入之間的空白給吃掉了 06/20 17:16
→ LPH66: 另外要注意的是 %xx 會停在它看不懂的第一個字 06/20 17:16
→ LPH66: 而且**不會先幫你吃掉空白**, 這對後讀的讀取會造成影響 06/20 17:17
→ LPH66: (以上我推文中的「空白」皆指 whitespace, 廣義的空白字元) 06/20 17:18
→ sr29: 了解了 感謝! 06/20 17:47
→ firejox: scanf("%*1[(]%lf%*1[,]%lf%*1[)]",..) ? 06/22 20:13
→ sr29: 有試過了 樓上那個好像也可以! 06/24 11:54