[問題] scanf輸入一串逗號隔開的數字問題
開發平台(Platform): (Ex: Win10, Linux, ...) s
codeblocks
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)s
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
各位版大們好,小弟在寫binary search tree的時候,竟然一開始在輸入數據的部分就遇到問題orz,因為題目規定輸入形式要以
「1,2,3,7,12,0,21」這種形式餵給程式,也就是你輸入這串後,程式會開始一個一個數字安插進二元搜尋樹中。
我的想法是寫成:
while(scanf("%d,", &num) != EOF)
{
statement;
}
這樣子,裡面statement是把num分別插進樹中。不過我這樣寫以後,用printf測試結果,數字都有讀到,不過我輸入完一串數據後,程式還是一直在等我輸入下一筆,除非我輸入非數字字元才會停止等待。
ex:10,12,31,42
輸出: 10 12 31 42
然後游標一直閃,就是等我輸入下一筆,可是我只要這一筆就夠了,不想一直在等待輸入的狀態。
有想過用sscanf分析,不過因為測資的數字數量不一定,所以好像不能用sscanf...
餵入的資料(Input):s
like 10,21,13,4,15
預期的正確結果(Expected Output):s
輸入完這筆之後就開始建立樹、print出整棵樹等等
錯誤結果(Wrong Output):s
一直在等我輸入下一筆,除非我單獨輸入一個非數字字元他才會被強制停止迴圈。
程式碼(Code):(請善用置底文網頁, 記得排版) s
只有片段,scanf的部分
while(scanf("%d,", &num) != EOF)
{
statement;
}
補充說明(Supplement):s
-----
Sent from JPTT on my Asus ASUS_Z017DA.
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 182.234.133.154
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1513179465.A.BC0.html
→
12/13 23:39,
8年前
, 1F
12/13 23:39, 1F
→
12/13 23:39,
8年前
, 2F
12/13 23:39, 2F
→
12/14 01:21,
8年前
, 3F
12/14 01:21, 3F
→
12/14 01:21,
8年前
, 4F
12/14 01:21, 4F
→
12/14 01:43,
8年前
, 5F
12/14 01:43, 5F
推
12/14 10:14,
8年前
, 6F
12/14 10:14, 6F
→
12/14 11:25,
8年前
, 7F
12/14 11:25, 7F
→
12/14 11:25,
8年前
, 8F
12/14 11:25, 8F
→
12/14 11:25,
8年前
, 9F
12/14 11:25, 9F
→
12/14 11:29,
8年前
, 10F
12/14 11:29, 10F
→
12/14 11:29,
8年前
, 11F
12/14 11:29, 11F
→
12/14 11:31,
8年前
, 12F
12/14 11:31, 12F
→
12/14 11:43,
8年前
, 13F
12/14 11:43, 13F
→
12/14 12:21,
8年前
, 14F
12/14 12:21, 14F
→
12/14 14:07,
8年前
, 15F
12/14 14:07, 15F
→
12/14 14:19,
8年前
, 16F
12/14 14:19, 16F
→
12/14 14:19,
8年前
, 17F
12/14 14:19, 17F
→
12/14 14:23,
8年前
, 18F
12/14 14:23, 18F
推
12/14 18:08,
8年前
, 19F
12/14 18:08, 19F