搜索
查看: 1018|回复: 5
打印 上一主题 下一主题

小BUG

[复制链接]
跳转到指定楼层
楼主
发表于 2016-7-7 17:04:10 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <iostream>
using namespace std;
void n_chars( char, int );
int main()
{
    int times;
    char ch;

    cout << "Enter a character: ";
    cin >> ch;
    while ( ch != 'q' )
    {
        cout << "Enter an integer: ";
        cin >> times;
        n_chars( ch, times );
        cout << "\nEnter another character or press the q-key to quit:";
        cin >> ch;
    }
    cout << "The value of times is " << times << ".\n";
    cout << "Bye\n";

    return 0;
}

void n_chars( char ch, int n )
{
    while ( n-- > 0 )
    {
        cout << ch;
    }
}

书上的代码,发现代码有什么问题木有?发现有啥啊币送~~!

沙发
发表于 2016-7-8 09:44:12 | 只看该作者
times是字符时会造成死循环
调用cin前先调用cin.clear()和cin.sync(),这样?

找到的一些别人的思路
http://www.cnblogs.com/pianoid/archive/2011/05/03/2035656.html
板凳
发表于 2016-7-8 16:09:37 | 只看该作者
按照规则输入就没有问题。

%3LMG3$$3LZW8$4_J9J4OEV.png (11.21 KB, 下载次数: 14)

%3LMG3$$3LZW8$4_J9J4OEV.png
地板
 楼主| 发表于 2016-7-8 19:08:01 | 只看该作者
小陈_FWaWW 发表于 2016-7-8 16:09
按照规则输入就没有问题。

你输入q后,应该是结束才是
The value of times is 2.
这句不就有点莫明奇妙了么

点评

因为 times 储存了你输入的数值!  发表于 2017-12-24 10:10
5#
发表于 2017-12-24 10:13:05 | 只看该作者
李掌柜 发表于 2016-7-8 19:08
你输入q后,应该是结束才是
The value of times is 2.
这句不就有点莫明奇妙了么

如此简单!     

OK.png (33.48 KB, 下载次数: 13)

截图

截图

test.cpp

566 Bytes, 阅读权限: 1, 下载次数: 0

源码

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表