关于scanf特殊输入
来源:互联网 发布:马士兵java视频教程pac 编辑:程序博客网 时间:2024/05/20 10:53
/**这次来研究研究 输入与输出那些各种奇葩的事情**/
/**建议复制粘贴到编译器看**/
#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <ctype.h>
#define MAX 1000000
int main(){
char arr[100];
//scanf("%10[]",arr); /**the 奇葩 一号**/
/** 经过我鼓捣 发现 %[] 可以输入一串任何东西 包括回车 空格 ,但是不清楚如何停止**/
/** 巴特 可以在[]前加一个数字 比如 %10[] 这代表 最多可以输入10个数 类比(printf)的 %10d **/
/** 这样的话 %10[] 可以表示 只读取 你输入的前10个东西哦**/
/** top:C语言是输入是 将键盘输入的东西放在一个缓存中 如果 你不按回车,会一直往缓存里放东西,所以输入结束后 要按回车,把缓存流给scanf**/
//scanf("%10[a-z A-Z 0-9]",arr); /**继续奇葩**/
//printf("%s",arr);
/** 这个怎么说呢,打个比方,少爷喜欢吃 字母表中的字母,无论大小写,还有数字,但是如果给他别的东西,他会气的跑开,差不多这个原理。嗯~ o(* ̄▽ ̄*)o**/
/**输入只能读取[]中的字符,其他字符都会使输入提前结束**/
/** 我说是[]中 所有字符,'-'是指定范围,不会当作字符看待吧。但是空格 ' ' 会!,我加空格是为了好区分,%[a-zA-Z0-9]写法比较好**/
//printf("%s",arr);
//scanf("%[^a]",arr);/**这个加个^ 猜猜代表什么,没错,代表'^'字符, <( ̄︶ ̄)↗[GO out!]**/
/**[^a]其实是 除了'a'以外的都可以读入, a 作为输入结束符**/
/**比如输入111111111111111111111回车 ,它会让你继续输入。。。
但是 如果 1111111111111111111a 回车,它就结束了**/
//printf("%s",arr);
//scanf("%[^abcde]",arr); /**这个的话 试一试 ,会很有趣的**/
//printf("%s",arr);
/**再比如**/
//scanf("%3s",arr);
//scanf("%3c",arr);
//scanf("%3d",arr);
/**接下来就是一些小应用了
有 fflush(stdin) 可以清空输入缓存,
getchar() 直接把下一个字符get掉;
**/
/**大家可以试试下面这个小程序,明明无限输入 ,巴特 试试就知道了**/
/*while(1)
{
scanf("%[a-z A-Z]",arr);
printf("%s",arr);
}*/
/**然后再试试这个**/
/*while(1)
{
scanf("%[a-z A-Z]",arr);
getchar();
printf(" the out is '%s'\n",arr);
}*/
/**还有这个**/
/*while(1)
{
scanf("%[a-z A-Z]",arr);
fflush(stdin);
printf(" the out is '%s'\n",arr);
}*/
/**找到区别没 ,发现 他们都输出一样
巴特 试试 输入 abcdef3g4h56j
(●'◡'●)**/
/**之后在试试把getchar()的那个进化一下**/
/*while(1)
{
int f;
f = scanf("%[a-z A-Z]",arr); /**top scanf 会返回一个已经输入的东西的个数,这里的东西指的是一个东西,嗯~ o(* ̄▽ ̄*)o~~~~**/
/**一个字符串 是一个东西,一个字符也是一个东西,一个数字也是一个东西,反正就是一串东西就是一个东西**/
/*getchar();
if(f!=0) printf("the out is '%s'\n",arr);
}*/
/**仔细思考一下就会发现他们之间的区别了**/
/**就到这里吧 ヾ(•ω•`)o**/
return 0;
}
阅读全文
0 0
- 关于scanf特殊输入
- 关于输入scanf()中缓冲区的几个问题
- 关于输入流scanf 的大坑
- 关于printf scanf 中%*s 特殊格式的说明
- c之关于输入 scanf 和其他输入的问题
- c之关于输入 scanf 和其他输入的问题
- scanf输入
- sscanf/scanf特殊用法
- scanf 的特殊用法
- scanf 特殊用法
- 关于C语言scanf输入匹配的问题
- 关于用getchar()代替scanf处理大量输入
- 关于scanf对输入非法字符的检查和处理
- 关于scanf输入数据时要注意的一些地方
- 关于scanf连续输入字符或字符串等
- c语言中scanf等函数关于输入流缓冲区
- 关于scanf函数输入及小题目回顾
- 关于scanf格式化输入函数的小问题
- linux系统调用实现的介绍
- java -version ——Error: could not open `C:\Program Files\Java\jre7\lib\i386\jvm.cfg'
- DynamoDB之UpdateItem
- 流程中心使用详情(三)流程设计
- eclipse反编译插件
- 关于scanf特殊输入
- 【重磅】AlphaZero炼成最强通用棋类AI,DeepMind强化学习算法8小时完爆人类棋类游戏
- spring事物异常回滚,捕获异常不抛出就不会回滚
- css pointer-events属性
- Android6.0存储系统序列图总结
- android弹出popupwindow时使下层页面变灰色
- 设备地址与IO内存映射
- 通达OA应用中心操作手册
- MVP模式