求助关于用getch()输入汉字的问题
编写自定义字符串数输入函数函数原型为:char *inputString(char *buffer, unsigned int bufferLen);
说明:入参buffer表示用于存储输入字符串的缓冲区,入参bufferLen表示该缓冲区的最大字节数。
返回buffer首地址指针。
功能基本要求:
在windows操作系统下,使用codeblocks做为开发工具。函数实现过程中,只能使用getch()做为键盘的输入,不得使用scanf、gets之类的系统函数。以回车键结束输入,支持退格键,支持输入汉字。
调用示例:
char buf;
printf("%s", inputString(buf, 100)); #include <stdio.h>
#include <conio.h>
char * inputString(char *buffer, unsigned int bufferlen)
{
int m ;
char c ;
for(m = 0 ; (c = getch()) != '\r' && m < bufferlen - 1 ;) {
if(c == 8) {
if(m > 0) {
if(buffer < 0) {
printf("\b \b") ;
buffer = '0' ;
}
printf("\b \b") ;
buffer = '0' ;
}
} else {
buffer = c ;
printf("%c" , c) ;
}
}
buffer = '\0' ;
printf("\n") ;
return buffer ;
}
main(void)
{
char buffer ;
unsigned int bufferlen = 258 ;
printf("%s\n" , inputString(buffer , bufferlen)) ;
}
编译、运行实况:
C:\Bin>g++ -o x x.c
C:\Bin>x
我爱鱼C我爱鱼C
我爱鱼C我爱鱼C
C:\Bin>
页:
[1]