首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2013-03-01 
请问在输入时如何用特殊字符代替回车?各位达人,我想实现这一简单的程序,比如用户输入 123a要求用户在刚敲

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

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

比如用户输入 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()了。

热点排行