正文

实时控制输入内容的长度2007-04-13 20:23:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/yzfy/24861.html

分享到:

以下代码(GetStringEX函数)能实现在控制台下有类似WindowsGDI界面的文本框最大输入文本长度的那种效果,个人感觉效果不错哈哈

#include <stdio.h>    //putchar
#include <conio.h>    //getch
#include <windows.h>  //MessageBeep

int GetStringEX(char* cpBuffer,int nMaxChars)
{
    int cInput, nCount = 0;
    while( (cInput = getch()) != '\r' )
    {
        if(cInput == '\b') //BackSpace
        {
            if(nCount > 0)
            {
                nCount--, printf("\b \b");
                if(nCount > 0 && cpBuffer[nCount]<0)
                    nCount--, printf("\b \b");
            }
        }
        else if(nCount < nMaxChars && (cInput < 0x80 || nCount + 1 < nMaxChars))
        {
            putchar( cpBuffer[nCount++] = (char)cInput );
            if(cInput >= 0x80)
                putchar( cpBuffer[nCount++] = (char)getch() );
        }
        else MessageBeep(MB_OK); //overflow BEEP
    }
    putchar('\n');
    cpBuffer[nCount] = '\0';
    return nCount;
}

//nain: 演示调用代码
int main()
{
    char a[21];
    GetStringEX(a,20); //最大长度20字节
    puts(a);
    getch();
    return 0;
}

相关帖子链接:http://www.programfan.com/club/showbbs.asp?id=226270

阅读(3246) | 评论(3)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册