1

我有以下代码。当输入类似的东西时jackpot,它会打印出 8 次 cout,每个字符一次。为什么要这样做?信息是一个结构,数字是一个整数。

do {
        cout <<"Please input a valid number."<< endl;
        cin>>information.number;
        if (!cin)
          {
             cin.clear();
             cin.ignore();
          }
    }
while(information.number> 12 || information.number< 1);
4

1 回答 1

1

您可以指定最大忽略长度长度和忽略delimiter

do {
        cout <<"Please input a valid number."<< endl;
        cin>>information.number;
        if (!cin)
          {
             cin.clear();
             cin.ignore(1024, '\n'); // ignore up to 1024 chars. until '\n'
          }
    }
while(information.number> 12 || information.number< 1);
于 2013-03-11T06:09:12.033 回答