看板 C_and_CPP 關於我們 聯絡資訊
問題(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)
LPH66:你是怎麼餵測資的? 12/09 10:28
otomoyox:./a.out < test.dat 12/09 10:39
LPH66:那個檔案如果最後有一個空行就表示它的確有一個'\n'在最後 12/09 11:46
LPH66:不過我記得有些編輯器會在最後沒有換行字元時補一個上去就是 12/09 11:51
otomoyox:那可能就是編譯器的問題了~ 12/09 12:44
DEATHX: 編輯器 12/09 17:24
otomoyox:感謝修正! 我用的是vim 剛剛google了一下,確實會補'\n'~ 12/09 18:36
MOONRAKER:你在linux下應該有hexdump好用吧,可以用hexdump -C 看 12/10 14:04
otomoyox:moon大的意思是@@? 其實不懂hexdump ORZ 12/13 15:57