这次来研究研究 输入与输出那些各种奇葩的事情

这次来研究研究 输入与输出那些各种奇葩的事情

这次来研究研究 输入与输出那些各种奇葩的事情
    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**/

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值