如何输入中输入回退键?
谢谢!
----------------解决方案--------------------------------------------------------
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。
----------------解决方案--------------------------------------------------------
楼上的不行,缓冲区自动会冲掉退格的.
----------------解决方案--------------------------------------------------------