'\b'退格符号笔记

  今天在给小孩儿讲for循环输出最后一个输出项没有空格的情况

  借助标记,选择在第二个至最后一个的输出项前添加空格

1  int flag = 0;
2  for(int i = 0; i < n; i++) {
3    if(flag == 0) cout << a[i];
4    else cout << ' ' << a[i];
5    flag++;
6  }

  孩子在自学过程中,学习到了'\b'退格符号,这个符号会使输出项不显示被退格的字符。孩子说,但是这个符号不能和换行符一起使用,这个字符我并没有使用过,于是我百度了一下。

了解到'\b'退格不是删除了一个字符,只是将光标向前移动了一个位置,此位置的字符仍然存在,但为什么后面的字符能够覆盖这个位置的字符,是因为当退格后,光标位置显示‘‘press any key to continue’,光标等待接下来的操作,而后面输出来的字符就会从此处打印到屏幕显示出来的样子就像是删除了一个字符。

  为什么'\b'不能和换行符一起使用,确切的说是为什么二者不能顺序使用,即'\b'后面为什么不能直接是'\n'或'endl'呢?

  那是因为'\b'退格后光标覆盖了此处的字符后,若换行则光标处的字符就显示了出来,所以并没有退了一个字符的效果。

posted @ 2019-09-21 15:51  MengDi  阅读(2262)  评论(0编辑  收藏  举报