作者kusoex (Q_Q)
看板C_and_CPP
標題[問題] scanf的問題
時間Wed Nov 24 01:12:00 2010
遇到的問題: (題意請描述清楚)
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