黑马程序员技术交流社区

标题: scanf这个函数,可以实现回车一次进入一次循环 [打印本页]

作者: hero200521296bj    时间: 2015-3-13 16:10
标题: scanf这个函数,可以实现回车一次进入一次循环
随机产生一个数字,直到产生6。
    int i = 0;
    char c;
    printf("请输入回车,开始摇号");
    for (int rand = 0; rand != 6;) {
        scanf("%c",&c);
        rand = arc4random()%6 +1;
        i++;
        if (rand == 6) {
            printf("第%d次,终于摇到%d了,恭喜您!",i,rand);
            break;
        }
        printf("第%d次,结果%d,未要摇到6,请再输入回车摇",i,rand);
    }
    printf("\n");

本人还是一个初学者,发现for循环开始后就是电脑自动运行,这几天琢磨怎么能实现手动控制。发现scanf可以实现这种打一次回车,才出一次结果。直到出现某个值,就跳出循环。小聪明,本人初来乍到,大神勿喷。哈哈。为了赚技术分的啊。

运行结果如下

请输入回车,开始摇号
1,结果3,未要摇到6,请再输入回车摇
2,结果2,未要摇到6,请再输入回车摇
3,结果1,未要摇到6,请再输入回车摇
4,结果5,未要摇到6,请再输入回车摇
5,结果3,未要摇到6,请再输入回车摇
6,结果2,未要摇到6,请再输入回车摇
7,结果4,未要摇到6,请再输入回车摇
8,结果5,未要摇到6,请再输入回车摇
9,结果1,未要摇到6,请再输入回车摇
10,结果5,未要摇到6,请再输入回车摇
11,结果5,未要摇到6,请再输入回车摇
12,结果5,未要摇到6,请再输入回车摇
13,结果4,未要摇到6,请再输入回车摇
14,结果4,未要摇到6,请再输入回车摇
15,终于摇到6了,恭喜您!


作者: yyx1992    时间: 2015-3-13 20:45
楼主差矣,scanf 输入结束的标志就是回车,意思就是不管你输入了什么只要一回车,系统就会认为你输入结束了,就会继续scanf之后的代码,其实while循环此处最合适,个人见解,仅供参考
作者: hero200521296bj    时间: 2015-3-13 20:49
yyx1992 发表于 2015-3-13 20:45
楼主差矣,scanf 输入结束的标志就是回车,意思就是不管你输入了什么只要一回车,系统就会认为你输入结束了 ...

恩,就是利用这个感觉上,每次出结果都需要打一次回车。呵呵。这几天看视频,都看疯了,娱乐一下了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2