[問題] printf的問題

看板C_and_CPP (C/C++)作者 (new life)時間16年前 (2009/07/09 19:46), 編輯推噓3(3012)
留言15則, 6人參與, 最新討論串1/1
int main(){ printf("aaab\b"); printf("\n"); } 這樣印出來是aaab 若是把printf("\n")那行給mark掉 印出來就是aaa 請問為什麼會這樣呢? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.137.22.221

07/09 20:41, , 1F
\b不是backspace嗎?
07/09 20:41, 1F

07/09 21:06, , 2F
XDD
07/09 21:06, 2F

07/09 21:49, , 3F
是backspace, 那為什麼\n印下去b就不會被吃掉....
07/09 21:49, 3F

07/09 21:49, , 4F
不知道原po是不是想問這個....@_@"
07/09 21:49, 4F

07/09 22:05, , 5F
console的靈異現象可不用執著吧
07/09 22:05, 5F

07/09 22:31, , 6F
V大,我就是要問為什麼\n印下去b就不會被吃掉
07/09 22:31, 6F

07/10 01:49, , 7F
你可以把\b的功能當作 把游標往前移一格
07/10 01:49, 7F

07/10 01:50, , 8F
有新字的時候就會蓋掉游標後面的字 (overwrite mode)
07/10 01:50, 8F

07/10 01:51, , 9F
把游標移到下一行去了 所以沒有蓋掉b
07/10 01:51, 9F

07/10 01:51, , 10F
實際上\b能做的真的只有移動游標 你寫入檔案的時候
07/10 01:51, 10F

07/10 01:52, , 11F
他也不會去往前刪 \b可以當作是display control用的而已
07/10 01:52, 11F

07/10 01:52, , 12F
所以只有console底下會有用
07/10 01:52, 12F

07/10 01:53, , 13F
後面那行mark掉之後 是誰去覆蓋掉b呢? 我猜是EOF 不確定
07/10 01:53, 13F

07/10 10:12, , 14F
try printf("aaab\b"); fflush( stdout); scanf("%*d");
07/10 10:12, 14F

07/10 19:42, , 15F
各位老大,我已經搞懂了,謝謝啦
07/10 19:42, 15F
文章代碼(AID): #1ALTYnjn (C_and_CPP)
文章代碼(AID): #1ALTYnjn (C_and_CPP)