关于 退格的一点疑问。。。

白色漂流瓶 2011-02-28 11:42:12
#include<stdio.h>
#include<string.h>
#include<conio.h>
main()
{
putchar('*');
putchar('*');
putchar('*');
putchar('*');
putchar(8);

}
运行之后 只有3个星号,再看下面的程序

#include<stdio.h>
#include<string.h>
#include<conio.h>
main()
{
putchar('*');
putchar('*');
putchar('*');
putchar('*');

while(getch()!='\r')
putchar(8);

}

为什么不是按任意键(除了回车) 之后星号少一个,实际情况是光标向前移动了一个,星号没变。。。
请说明一下why,好奇怪啊
...全文
188 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianyancao 2011-03-01
  • 打赏
  • 举报
回复
system("PAUSE");
return EXIT_SUCCESS;
proghua 2011-02-28
  • 打赏
  • 举报
回复
另外建议用转义字符
白色漂流瓶 2011-02-28
  • 打赏
  • 举报
回复
我明白了,我用的vc6.0 在作祟,他自己加的system("pause")把最后一个星号覆盖了。用getch()暂停r就正常了。。。
退格的含义是光标回退,不会再屏幕上删除字符。[Quote=引用 4 楼 mstlq 的回复:]

退格不保证删除,我喜欢三句连着用
putchar(8);
putchar(' ');
putchar(8);
[/Quote]
白色漂流瓶 2011-02-28
  • 打赏
  • 举报
回复
和这个无关 用getch 只能用\r作为回车的结束[Quote=引用 1 楼 c395565746c 的回复:]

while(getch()!='\r')
改为
while(getch()!='\n')
行不行?
[/Quote]
mstlq 2011-02-28
  • 打赏
  • 举报
回复
退格不保证删除,我喜欢三句连着用
putchar(8);
putchar(' ');
putchar(8);
Johnxme126 2011-02-28
  • 打赏
  • 举报
回复
第一个向前移了然后最后的*被覆盖了
proghua 2011-02-28
  • 打赏
  • 举报
回复
\b退格的意思就只是光标往前移动而已
「已注销」 2011-02-28
  • 打赏
  • 举报
回复
while(getch()!='\r')
改为
while(getch()!='\n')
行不行?

69,381

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧