读书人

请教在输入时怎么用特殊字符代替回车

发布时间: 2013-03-01 18:33:02 作者: rapoo

请问在输入时如何用特殊字符代替回车?
各位达人,

我想实现这一简单的程序,

比如用户输入 123a

要求用户在刚敲完字母 a 时(还没有按回车),程序就给回车了。

请问这个怎么实现?

十分感谢!


[解决办法]
WM_CHAR,
判断输入某个特殊字符,加回车,然后updatedata
[解决办法]
int ch = getch();
不回显字符,当然也有 回显的函数 getchar()。
[解决办法]

引用:
问题是怎么把 字母 a前面的 123放入到一个整型变量里,然后再打印出来呢

自己控制输入
char buff[256];
int top = 0, k;
while(true)
{
k = getch();
if(k == 'a')
break;
else
{ buff[top] = k; putchar(k); top++ }
}
buff[top] = '\0';
[解决办法]
atoi函数
char buf[256] = "";
int i = 0;
while (true)
{
char c = getch();
if ('a' == c)
{
putch('\r');
putch('\n');
break;
}
buf[i++] = c;
}
int ret = atoi(buf);

printf("%d\n", ret);

[解决办法]
仅供参考
#include <conio.h>
#include <stdio.h>
char pw[40];
int i,ch;
FILE *f;
void main() {
cprintf("\r\nPassword:");
i=0;pw[i]=0;
while (1) {
ch=getch();
if (ch==13
[解决办法]
i>=39) break;
switch (ch) {
case 27:
cprintf("\rPassword: %40s"," ");
cprintf("\rPassword: ");
i=0;pw[i]=0;
break;
case 8:
if (i>0) {
i--;
pw[i]=0;
cprintf("\b \b");
}
break;
default:
pw[i]=ch;
i++;
pw[i]=0;
cprintf("*");
break;
}


}
cprintf("\r\n");
f=fopen("password.txt","w");
fprintf(f,"%s\n",pw);
fclose(f);
}


[解决办法]
getch()不是C或C++标准的。
[解决办法]
Linux参考NCURSES库。
[解决办法]
引用:
getch()不是C或C++标准的。

那还有别的办法么?


没有标准的方法。这个操作较底层,不好做到标准里。不过windows和linux下都有实现,前面有人介绍过。如果对于可移植性要求不是很极端,基本上够用了。

visual C++ 里现在改名叫 _getch()了。

读书人网 >C++

热点推荐