Re: [問題] scanf的問題
※ 引述《kusoex (Q_Q)》之銘言:
: 遇到的問題: (題意請描述清楚)
: 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
: {
i = scanf("%d%c%c%d",&coe,&c1,&c2,&exp);
if(i == 4) {
: ...
: (對coe.c1.c2.exp分別做一些操作)
: ...
}
}while(i==4);
根據
http://www.cplusplus.com/reference/clibrary/cstdio/scanf/
Return Value
回傳值
On success, the function returns the number of items succesfully read.
如果成功, 這個函數回傳成功讀取項目的數量。
This count can match the expected number of readings or fewer, even zero,
這個計數能匹配預期讀到數量或是更少, 甚至為零,
if a matching failure happens.
當一個匹配失敗發生時。
In the case of an input failure before any data could be successfully read,
在一個輸入失敗的情形, 任何資料被成功讀取前,
EOF is returned.
EOF 將被回傳。
--
渴望飛翔在自由的風中,
期望逃離這拘束的現實,
一切都讓他隨著風而去,
獨自躲在黑暗的空氣中,
舔舐被狠狠撕裂的傷口。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.104.29.8
推
11/24 02:48, , 1F
11/24 02:48, 1F
討論串 (同標題文章)