打印

关于输入缓冲区回车对scanf的影响

[复制链接]
1155|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shanghaifar|  楼主 | 2013-10-16 11:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 地瓜patch 于 2013-12-27 19:56 编辑

作者:刘老师
写程序时,当需要在标准输入端输入信息时,scanf 经常被使用到,但是一些细节需要注意
代码 一
1. //---------------------------------------
        2. //验证输入缓冲区回车对scanf的影响
        3. //---------------------------------------
        4.
        5. #include <stdio.h>
        6.
        7. int main(void)
        8. {
        9.        char ch1, ch2;
        10.        char buf[6];
        11.        int a, b;
        12.
        13.        printf("(int )a :\n");
        14.        scanf("%d", &a); // 用户输入完后,遗留一个回车符
        15.
        16.        printf("(char )buf[]:\n");
        17.        scanf("%s", buf); // 试探回车符对读取 “字符串” 的影响,输入完后又产生一个回车符
        18.
        19.        printf("(char)ch1:\n");
        20.        scanf("%c", &ch1); // 试探回车符对读取 “字符” 的影响输入完后又产生一个回车符
        21.
        22.        printf("(int)b :\n");
        23.        scanf("%d", &b); //试探回车符对读取 “整数” 的影响输入完后又产生一个回车符
        24.
        25.        printf("(char)ch2 :\n");
        26.        scanf("%c", &ch2); //// 试探回车符对读取 “字符” 的影响输入完后又产生一个回车符
        27.
        28.
        29.        printf("a:%d", a);
        30.        printf("b:%d", b);
        31.        printf("ch1:%c", ch1);
        32.        printf("ch2:%c", ch2);
        33.        printf("buf:%s", buf);
        34.
        35.
        36.        return 0;
        37. }

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

47

主题

81

帖子

0

粉丝