为什么我需要两次输入才能让代码运行

  • 本文关键字:两次 运行 代码 c++
  • 更新时间 :
  • 英文 :


我正在编写一段简单的代码来根据用户输入输出一定次数的文本,但是在终端中运行时,我需要键入数字两次(例如:5 [enter] 5 [enter],那么文本将输出5次)。只是想知道为什么会这样,以及如何解决这个问题,非常感谢。

#include <iostream>
using namespace std;
int main() {
int x;
int i;
cout << "How many times do you want me to say [London Town], Numbers only" << end;
while (true) {
cin >> x;
if (!cin) {
cout << "Please type a number not text" << endl;
cin.clear();
cin.ignore(numeric_limits < streamsize > ::max(), 'n');
continue;
} else break;
}
cin >> x;
for (int i = 0; i < x; i++) {
std::cout << "London Town n";
}
}

将x读入两次,因此需要输入两次。您可以通过删除其中一个cin >> x来修复此问题。

例如:

#include <iostream>
using namespace std;
int main() {
int x;
int i;
cout << "How many times do you want me to say [London Town], Numbers only" << end;
while (true) {
cin >> x;
if (!cin) {
cout << "Please type a number not text" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), 'n');
continue;
} else break;
}
for (int i = 0; i < x; i++) {
std::cout << "London Town n";
}
}

main中的int i;未被使用,因此您也可以删除它。如果需要,还可以将while循环与If语句结合使用。

例句:

#include <iostream>
#include <limits>
int main() {
std::cout << "How many times do you want me to say [London Town], Numbers only" << std::endl;

int x;
while(!(std::cin >> x)) {
std::cout << "Please type a number not text" << std::endl;
std::cin.clear();
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), 'n');
}
for (int i = 0; i < x; i++) {
std::cout << "London Town n";
}
}

例子godbolt

相关内容

  • 没有找到相关文章

最新更新