以下代码(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
正文
实时控制输入内容的长度2007-04-13 20:23:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/yzfy/24861.html
阅读(3246) | 评论(3)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论