看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) do { scanf("%d%c%c%d",&coe,&c1,&c2,&exp); ... (對coe.c1.c2.exp分別做一些操作) ... }while(不知道要如何讓他中止??); 希望得到的正確結果: 比如說我輸入: 1x^2+3x^1-4x^0 [enter] 第一次讀到coe= 1 c1='x' c2='^' exp=2 二 coe= 3 c1='x' c2='^' exp=1 三 coe=-4 c1='x' c2='^' exp=0 我希望讀到這裡就會跳出迴圈, 但是我怎麼試讀完第三次以後他又會重新要我輸入東西 跳不出這個迴圈 程式跑出來的錯誤結果: 不會結束,會一直執行scanf... 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) Dev C++ 有問題的code: (請善用置底文標色功能) do { scanf("%d%c%c%d",&coe,&c1,&c2,&exp); ... (對coe.c1.c2.exp分別做一些操作) ... }while(不知道要如何讓他中止??); -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.248.226.155
james732:按 Ctrl+D ? 11/24 01:20
VictorTom:直接讀完整行再用sscanf一項項parse出來?? 11/24 01:53
loveme00835:為什麼我看到錯誤結果那邊會有想笑的fu XD 11/24 01:55
loveme00835:問一下原 PO, 你 'x' '^' 兩個字也都要讀進去? 11/24 02:00
loveme00835:ungetc 這個函式可以看一下, 先讀讀看是不是換行, 不 11/24 02:18
loveme00835:是就繼續 scanf, 否則字元放回去迴圈結束 11/24 02:18
loveme00835:XD 看看這方法合不合用 http://codepad.org/i2doayfS 11/24 12:23