自定义输入函数 - C语言编程

 代码如下:

#include <stdio.h>
#include <conio.h>

void input(char *content);
int main()
{
    char ch[]="0";// 习惯字符串初赋值为"0"
    printf("Please input: ");
    input(ch);// 调用输入函数
    printf("The content : %s",ch);// 输出内容
    getch();
    return 0;
}
void input(char *content)
{
    int keyNum=0;
    char key=‘\b‘;// 初赋值‘\b‘首次循环才不会执行第一个if
    while(key!=13)// 13为回车的ASCII,使用‘\n‘在Windows上有异常
    {
        if(key!=‘\b‘)// 这里可以设置输入范围
        {
        putchar(key);
        content[keyNum++]=key;// 很好地运用了a++和++a各自的特点(a++先赋值再++,++a先++再赋值)
        }else if(key==‘\b‘&&keyNum>0)
        {
            putchar(‘\b‘);
            putchar(‘ ‘);
            putchar(‘\b‘);
            keyNum--;
        }
        content[keyNum]=0;// 0相当于字符串里‘\0‘,代表字符串的结尾;后置以赋予正确的结尾位置
        key=getch();// getch后置,解决首次输入回车会被content获取的问题
    }
    printf("\n");// 回车结束输入并换行
}

相关推荐