为了账号安全,请及时绑定邮箱和手机立即绑定

while循环中存在printf函数时,回车对循环的影响。

标签:
C
  1. while循环中存在printf函数时。

    如以下代码:

#include <stdio.h>

int main()
{
    char ch;
    int count = 0;

    while ((ch = getchar ()) != '|')
    {
                count++;
                printf("Count is :%d.The character is %c.\n", 
count, ch);

    }
    return 0;
}

这个文件目的是输出输入字符的个数。
下面我们编译,执行这个文件:
输入:abc【回车】
下面是输出结果:
count is :1.The character is a.
count is :2.The character is b.
count is :3.The character is c.
count is :4.The character is [空格]
.
_(这个时候光标挪到下一行等到输入,循环还在继续)
![图片描述][1]

可见,在含printf的while循环中,如果输入了【回车】(回车不是结束循环的标志)时候,程序会读取输入的abc【回车】接着执行循环里的printf函数。此时循环还未结束,printf输出后仍等待输入。
我本以为程序会这样执行:abc【回车】另起一行继续等我们输入,直到输入结束循环的符号,然后再依次执行printf函数。

  1. while循环中没有printf函数时。
    如以下代码:
    
    #include <stdio.h>

int main()
{
char ch;
int count = 0;

while ((ch = getchar ()) != '|')
{
            count++;
}
printf("Count is :%d.\n", count);
return 0;

}


下面我们编译,执行这个文件:
输入:abc【回车】此时屏幕上没有任何输出结果,而是并另起一行等带我们继续输入,直到我们输入结束循环符号:‘|’
![图片描述][2]
重新输入:
abc【回车】
|
后程序直接结束,如下:
![图片描述][3]

  [1]: http://img1.sycdn.imooc.com//5959a9080001181f02810159.png
  [2]: http://img1.sycdn.imooc.com//5959a88800016ed303700145.png
  [3]: http://img1.sycdn.imooc.com//5959a9f90001606003050118.png
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消