C++ c++;而loops会打印两次couts
在我的代码中,while循环打印cout两次,而它应该打印cout一次,以及函数的cout。我不明白它为什么这样做——它应该显示出来 你想做什么 存款 撤回 取消 但是,它显示了两次C++ c++;而loops会打印两次couts,c++,while-loop,C++,While Loop,在我的代码中,while循环打印cout两次,而它应该打印cout一次,以及函数的cout。我不明白它为什么这样做——它应该显示出来 你想做什么 存款 撤回 取消 但是,它显示了两次 while (yesNo == 'Y') { cout << "What would you like to do?" << endl << endl; menu(); getli
while (yesNo == 'Y') {
cout << "What would you like to do?"
<< endl
<< endl;
menu();
getline(cin, bankChoice);
if (bankChoice == "Withdraw")
{
withdrawTotal = withdraw(bankAmount);
bankAmount = withdrawTotal;
cout << "You now have $"
<< bankAmount
<< " in your account."
<< endl;
cout << "Would you like to do anything else?"
<< endl
<< "Y/N: ";
cin >> yesNo;
}
if (bankChoice == "Deposit")
{
depositTotal = deposit(bankAmount);
bankAmount = depositTotal;
cout << "You now have $"
<< bankAmount
<< " in your account."
<< endl;
cout << "Would you like to do anything else?"
<< endl
<< "Y/N: ";
cin >> yesNo;
}
if (bankChoice == "Cancel") {
return 0;
}
}
while(yesNo=='Y'){
您可以同时使用std::getline
和operator>
来读取std::cin
operator>
不使用尾随的换行符,因此下次调用std::getline
()将立即读取以下换行符,并将其解释为输入的空行文本。这将在循环中运行,并返回到顶部,以获得第二个提示
当您打算阅读一行文本时,切勿将operator>
与std::cin
一起使用
下面的简短示例演示了这一点:
#include <iostream>
#include <string>
int main()
{
char c;
std::string l;
std::cin >> c;
std::cout << "A line of text please: ";
std::getline(std::cin, l);
}
#包括
#包括
int main()
{
字符c;
std::字符串l;
标准:cin>>c;
std::cout除了Sam的答案之外,我建议您在两个if语句之外提取通用功能:
std::string yesNo;
while (yesNo.compare("Y") == 0) {
cout << "What would you like to do?"
<< endl
<< endl;
menu();
getline(cin, bankChoice);
if (bankChoice == "Cancel")
return 0;
if (bankChoice == "Withdraw") {
withdrawTotal = withdraw(bankAmount);
bankAmount = withdrawTotal;
}
if (bankChoice == "Deposit") {
depositTotal = deposit(bankAmount);
bankAmount = depositTotal;
}
cout << "You now have $"
<< bankAmount
<< " in your account."
<< endl;
cout << "Would you like to do anything else?"
<< endl
<< "Y/N: ";
std::getline(std::cin, yesNo);
}
std::string yesNo;
而(是否比较(“Y”)==0){
难道menu()
做了什么?要了解发生了什么,请输出cin>
(作为int)@AndrewCheong'menu()的结果'仅显示存款、取款和取消行是否可以用cin替换?可能是存储的字符导致自动前进。请尝试在每次输入后清除输入缓冲区。请在a上多做一些工作。您显示了许多不相关的代码,而没有显示菜单()
函数,该函数正好是错误发生的位置。