【发布时间】:2017-05-29 10:56:37
【问题描述】:
我正在尝试编写一个将两个输入整数相加的代码,并且只要用户愿意,就一直添加一个整数,如果用户想退出,只需写“否”。但是,这不起作用。当您写“不”时,它会变得疯狂并添加和减去看似随机的数字。我的主要功能只是运行inputIntegersUsingLoopAndPrintSum()
void inputIntegersUsingLoopAndPrintSum() {
int input;
string answer;
int sum = inputIntegersAndPrintSum();
cout << "do you wish to continue? if you don't; write no\n";
getline(cin, answer); //If you wish to continue
while (answer != "no") {
input = inputInteger();
sum = sum + input;
cout << "new sum is: " << sum << "\n";
cout << "do you wish to continue? if you don't; write no\n";
getline(cin, answer);
}
int inputInteger() {
int tall;
cout << "Skriv inn et tall: ";
cin >> tall;
return tall;
int inputIntegersAndPrintSum() {
int input1, input2, sum;
input1 = inputInteger(); //bruker den som returnere en verdi
input2 = inputInteger();
sum = input1 + input2;
cout << "Summen av tallene: " << sum << "\n";
return sum;
}
【问题讨论】:
-
不要混用
getline和>>。这是灾难的根源。 -
您是否尝试过打印
answer总是循环运行?写while(answer != "no"){ cout<<answer<<endl; ...之类的东西,然后检查你得到了什么。 -
可能当您在方法
inputInteger()中使用cin时,当您在answer上调用getline时可能会导致一些错误 -
它只是简单地替换了我一直在使用的 getlines。我第一次这样做时它没有编译,但在重新启动视觉后它工作了。感谢您的帮助!
标签: c++ string while-loop