作者giveatry (new life)
看板C_and_CPP
標題[問題] printf的問題
時間Thu Jul 9 19:46:56 2009
int main(){
printf("aaab\b");
printf("\n");
}
這樣印出來是aaab
若是把printf("\n")那行給mark掉
印出來就是aaa
請問為什麼會這樣呢?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.137.22.221
1F:→ MOONRAKER:\b不是backspace嗎? 07/09 20:41
2F:→ remmurds:XDD 07/09 21:06
3F:推 VictorTom:是backspace, 那為什麼\n印下去b就不會被吃掉.... 07/09 21:49
4F:→ VictorTom:不知道原po是不是想問這個....@_@" 07/09 21:49
5F:→ MOONRAKER:console的靈異現象可不用執著吧 07/09 22:05
6F:→ giveatry:V大,我就是要問為什麼\n印下去b就不會被吃掉 07/09 22:31
7F:推 buganini:你可以把\b的功能當作 把游標往前移一格 07/10 01:49
8F:→ buganini:有新字的時候就會蓋掉游標後面的字 (overwrite mode) 07/10 01:50
9F:→ buganini:把游標移到下一行去了 所以沒有蓋掉b 07/10 01:51
10F:→ buganini:實際上\b能做的真的只有移動游標 你寫入檔案的時候 07/10 01:51
11F:→ buganini:他也不會去往前刪 \b可以當作是display control用的而已 07/10 01:52
12F:→ buganini:所以只有console底下會有用 07/10 01:52
13F:→ buganini:後面那行mark掉之後 是誰去覆蓋掉b呢? 我猜是EOF 不確定 07/10 01:53
14F:推 Ebergies:try printf("aaab\b"); fflush( stdout); scanf("%*d"); 07/10 10:12
15F:→ giveatry:各位老大,我已經搞懂了,謝謝啦 07/10 19:42