以下代码(GetStringEX函数)能实现在控制台下有类似WindowsGDI界面的文本框最大输入文本长度的那种效果,个人感觉效果不错哈哈#include <stdio.h> //putchar#include <conio.h> //getch#include <windows.h> //MessageBeepint 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

评论