C++ 我的程序不会打印任何东西。。。
所以我正在研制一个模拟我们每天使用的计算器。我所展示的是我的功能中的逻辑。 以前,当我删除了我的cout行,不再显示,以查看我的y是否正确存储,我的两个变量finalNum1和finalnum2,一切正常,但当返回,尝试添加新cout行时,没有打印任何内容。如果有更多的问题,请随意指出,但这段代码还没有完成,我主要关心的是没有什么是打印,我理解这段代码仍然需要工作。如果有人能帮忙,我将不胜感激C++ 我的程序不会打印任何东西。。。,c++,calculator,C++,Calculator,所以我正在研制一个模拟我们每天使用的计算器。我所展示的是我的功能中的逻辑。 以前,当我删除了我的cout行,不再显示,以查看我的y是否正确存储,我的两个变量finalNum1和finalnum2,一切正常,但当返回,尝试添加新cout行时,没有打印任何内容。如果有更多的问题,请随意指出,但这段代码还没有完成,我主要关心的是没有什么是打印,我理解这段代码仍然需要工作。如果有人能帮忙,我将不胜感激 int Calculator::calculate() { if (userInput[0]
int Calculator::calculate()
{
if (userInput[0] != 'q' || 'Q') // Checks for user input "Quit" or "quit"
{
int stringSize;
std::cin >> userInput; // User Input
stringSize = userInput.length();
int y = 0;
while (y < stringSize)
{
if (isdigit(userInput[y]))
{}
else
{
posi = y;
}
y++;
}
first = userInput.substr(0,posi);
second = userInput.substr(posi+1,y);
finalNum1 = std::stoi(first); // Sigbart error
finalNum2 = std::stoi(second);
std::cout << finalNum1 + finalNum2; // won't print
switch (userInput[posi])
{
case '+':
std::cout << finalNum1 + finalNum2;
break;
case '-':
std::cout << finalNum1 - finalNum2;
break;
case '*':
std::cout << finalNum1 * finalNum2;
break;
case '/':
std::cout << finalNum1 / finalNum2;
break;
case '%':
std::cout << finalNum1 % finalNum2;
break;
}
}
else
std::cout << "Goodbye";
return 0;
}
对于打印整数,将它们转换为字符串更容易
using namespace std;
float tmp = finalNumber1 + finalNumber2;
string out = to_string(tmp);
cout << tmp << endl;
还有一件事。您应该使用for而不是while。您的代码从不验证posi是否有效。如果用户输入[0]!='q'| |'q'应更改为if userInput[0]!='q'| |用户输入[0]!='Q'必须有dup,但userInput[0]!='q'| |'q'错误:用户输入[0]!='q'&&userInput[0]!='Q'是你想要的。@Dai事实上,posi甚至没有声明!如果您希望它像这样打印刷新流:std::cout这是一个否定的答案。它是如何远程处理OP要求的任何内容的?这就是您可以打印整数或浮点数而不出现任何问题的方式请告诉我OP如何处理的问题是什么?如果您的实现在流式处理浮点数时遇到问题,您会遇到更大的问题。。。另外,请停止使用命名空间std;。