当前位置: 代码迷 >> C语言 >> [求助]如何输入回退键?
  详细解决方案

[求助]如何输入回退键?

热度:373   发布时间:2006-07-29 18:02:13.0
[求助]如何输入回退键?

如何输入中输入回退键?

谢谢!

搜索更多相关的解决方案: 输入  

----------------解决方案--------------------------------------------------------
char ch=getche();试试
----------------解决方案--------------------------------------------------------

我不太明白您的意思
#include <stdio.h>
int main()
{
int c, d;

while ( (c=getchar()) != EOF) {
d = 0;
if (c == '\\') {
putchar('\\');
putchar('\\');
d = 1;
}
if (c == '\t') {
putchar('\\');
putchar('t');
d = 1;
}
if (c == '\b') {
putchar('\\');
putchar('b');
d = 1;
}
if (d == 0)
putchar(c);
}
return 0;
}
这个程序时要求遇见回退符输出\b,遇制表符输出\t遇反斜杠输出\\

现在我想问的时如何输入回退符

谢谢


----------------解决方案--------------------------------------------------------
用getchar()回退格输不了,用getche()可直接被读入,不可更改。
但在程序中用了getche的话,EOF却又失效了,无法退出。

----------------解决方案--------------------------------------------------------

我想了想,用文件倒有一个作弊方案,呵呵。
您看下代码:
#include "stdio.h"
#include "graphics.h"

main()
{
char ch=getche();
FILE *fp;
if((fp=fopen("e:\\1.txt","w"))==NULL)
exit(1);
while(ch!='\r')
{
if(ch=='\b')
fprintf(fp,"\\b");
else if(ch=='\\')
fprintf(fp,"\\\\");
else if(ch=='\t')
fprintf(fp,"\\t");
else
fputc(ch,fp);
ch=getche();
}

rewind(fp);
gotoxy(1,gety()+2);
ch=fgetc(fp);
while(ch!=EOF)
{
putchar(ch);
ch=fgetc(fp);
}
fclose(fp);
unlink("e:\\1.txt");
system("pause");
}

[此贴子已经被作者于2006-7-29 19:28:04编辑过]


----------------解决方案--------------------------------------------------------

程序改成按回车退出循环(可能不符题意,没办法,EOF在我能力范围内用getche实现不了)


----------------解决方案--------------------------------------------------------
利用判断输入的字符的ascii码,回车的ascii码是13。
----------------解决方案--------------------------------------------------------
楼上的不行,缓冲区自动会冲掉退格的.
----------------解决方案--------------------------------------------------------
  相关解决方案