有返回功能的输入函数:

#include <stdio.h>
#include <conio.h> void input(char content[]);
int main()
{
char ch[]="\0";// 习惯字符串初赋值为"\0"
printf("Please input: ");
input(ch);// 调用输入函数
if(ch[]!=)
printf("The content : %s",ch);// 输出内容
else
printf("Has come back!\n");// 模拟返回功能
getchar();
return ;
}
void input(char content[])
{
int keyNum=;
char key=;
while(key!=)// 13为回车的ASCII,在Windows上可以是'\r',但不是'\n'
{
key=getch();
if((key>'a'&&key<'z')||(key>'A'&&key<'Z')||(key>=''&&key<='')||(key==' '))
{// 这里可以设置输入范围(不能包含回车)
putchar(key);
content[keyNum++]=key;// 很好地运用了a++和++a各自的特点(a++先赋值再++,++a先++再赋值)
}else if(key=='\b'&&keyNum>)// 退格功能
{
printf("\b \b");
keyNum--;
}else if(key==)// 27为esc的ASCII,实现程序返回功能
{
content[]=;// content[0]用于识别是否为esc键
keyNum++;
break;
}
content[keyNum]=;// 0相当于字符串里'\0',代表字符串的结尾;后置以赋予正确的结尾位置
}
if(keyNum==) input(content);// 实现 无输入情况回车无效
else putchar('\n');// 回车结束输入并换行
}

最新文章

  1. Unicode简介
  2. ASP.NET Core 1.0中的管道-中间件模式
  3. ORACLE 11g 数据库体系结构图
  4. TreeView 自定义显示checkbox
  5. 6. ZigZag Conversion
  6. JSON基本用法
  7. .Net中几种常见的页面跳转传值方法
  8. 教你轻松看懂 iOS9 新功能
  9. LoadRunner参数化功能详解
  10. 个人总结js客户端验证
  11. 【Win 10 应用开发】MIDI 音乐合成——乐理篇
  12. ZipKin的原理的介绍
  13. 在安卓代码中dp 和 sp 换算px
  14. BDD中数据的类型及处理方法(python)
  15. tomcat端口修改以及jvm启动参数设置
  16. Houdini技术体系 基础管线(四) :Houdini驱动的UE4植被系统 上篇
  17. Windows 10安装Python 3 7成功打印Hello World!
  18. Tensorflow学习笔记02-Session,Variable,placeholder
  19. SQL Server 2008读取域帐户信息
  20. Python中逗号的妙用

热门文章

  1. set()和get()方法
  2. 关于Synchronized研伸扩展
  3. git 中文乱码配置
  4. php ftp 使用 以及 php_connect_nonb() failed: Operation now in progress (115)
  5. day5 字典 dict
  6. 剑指offer-面试题16-数值的整数次方-数字
  7. hackintosh和windows时区问题
  8. vue登录管理
  9. 小程序texarea 输入内容回显失败
  10. node的定时器