[問題] scanf 測資結尾

看板C_and_CPP (C/C++)作者 (想)時間13年前 (2012/12/09 09:50), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
問題(Question): 測資的結尾並沒有'\n' 但用gdb跑的時候,gdb顯示c最後吃進了一個'n' 為什麼最後會吃進'\n'呢@@? 先感謝好心人幫忙解惑了 <(_ _)> 餵入的資料(Input): asdf 預期的正確結果(Expected Output): ----------- 1 a 1 s 1 d 1 f ----------- 錯誤結果(Wrong Output): ----------- 1 a 1 s 1 d 1 f 1 ----------- 程式碼(Code):(請善用置底文網頁, 記得排版) #include<stdio.h> int main(){ int t; char c; while((t=scanf("%c",&c))==1) { printf("%d %c\n",t,c); } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.204.110 ※ 編輯: otomoyox 來自: 140.119.204.110 (12/09 10:23)

12/09 10:28, , 1F
你是怎麼餵測資的?
12/09 10:28, 1F

12/09 10:39, , 2F
./a.out < test.dat
12/09 10:39, 2F

12/09 11:46, , 3F
那個檔案如果最後有一個空行就表示它的確有一個'\n'在最後
12/09 11:46, 3F

12/09 11:51, , 4F
不過我記得有些編輯器會在最後沒有換行字元時補一個上去就是
12/09 11:51, 4F

12/09 12:44, , 5F
那可能就是編譯器的問題了~
12/09 12:44, 5F

12/09 17:24, , 6F
編輯器
12/09 17:24, 6F

12/09 18:36, , 7F
感謝修正! 我用的是vim 剛剛google了一下,確實會補'\n'~
12/09 18:36, 7F

12/10 14:04, , 8F
你在linux下應該有hexdump好用吧,可以用hexdump -C 看
12/10 14:04, 8F

12/13 15:57, , 9F
moon大的意思是@@? 其實不懂hexdump ORZ
12/13 15:57, 9F
文章代碼(AID): #1Gm-vZ7_ (C_and_CPP)
文章代碼(AID): #1Gm-vZ7_ (C_and_CPP)