Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将函数中的值返回到while循环测试的值中。C++;_C++ - Fatal编程技术网

C++ 将函数中的值返回到while循环测试的值中。C++;

C++ 将函数中的值返回到while循环测试的值中。C++;,c++,C++,我正在创建一个使用构造函数的基本计算器程序,方法是在其他“.cpp”文件中创建类并在头文件中调用它们。这个程序以我写的方式运行得非常好。我决定在最后添加一个问题,询问用户是否想按“c”或“c”继续。我创建了一个函数来测试它。我能够根据是否按下c返回两个不同的值我如何将该值分配给while循环中正在测试的“x”?我希望它结束程序或继续程序 我没有包括构造函数所需的头文件或“.cpp”文件,但我不认为它们是找到如何将x设置为函数返回值所必需的 #include <iostream> #i

我正在创建一个使用构造函数的基本计算器程序,方法是在其他“.cpp”文件中创建类并在头文件中调用它们。这个程序以我写的方式运行得非常好。我决定在最后添加一个问题,询问用户是否想按“c”或“c”继续。我创建了一个函数来测试它。我能够根据是否按下c返回两个不同的值我如何将该值分配给while循环中正在测试的“x”?我希望它结束程序或继续程序

我没有包括构造函数所需的头文件或“.cpp”文件,但我不认为它们是找到如何将x设置为函数返回值所必需的

#include <iostream>
#include "Add.h"
#include "Sub.h"
#include "Mult.h"
#include "Div.h"

using namespace std;

int cont(char input);

int main()
{
    char operatr;
    int x = -2;
    char y;

    while (x = 1) {

        cout << "Enter operator (+, -, *, or /): ";
        cin >> operatr;


        if(operatr =='+'){
            Add ob;
            cout << "Would you like to continue? (Press \"c\" to continue and any key to escape.)";
            cin >> y;
            cout << (cont(y));
            x = (cont(y));
        }
        if(operatr== '-'){
            Sub ob;
            cout << "Would you like to continue? (Press \"c\" to continue and any key to     escape.)";
            cin >> y;
            cout << (cont(y));
            x = (cont(y));
        }
        if(operatr=='*'){
            Mult ob;
            cout << "Would you like to continue? (Press \"c\" to continue and any key to escape.)";
            cin >> y;
            cout << (cont(y));
            x = (cont(y));
        }
        if(operatr=='/'){
            Div ob;
            cout << "Would you like to continue? (Press \"c\" to continue and any key to escape.)";
            cin >> y;
            cout << (cont(y));
            x = (cont(y));
        }
    }
    return (0);
}

int cont(char input) {
    int a;
    switch(input) {
        case 'c':
            a = -2;
            break;

        case 'C':
            a = -2;
            break;

        default:
            a = 0;
            break;
     }
return(a);
}
#包括
#包括“Add.h”
#包括“Sub.h”
#包括“Mult.h”
#包括“部门h”
使用名称空间std;
int cont(字符输入);
int main()
{
字符运算符;
int x=-2;
chary;
while(x=1){
cout>运算符;
if(运算符=='+'){
添加ob;
cout>y;
库蒂;
库蒂;
库蒂;
可能有两个问题:

  • 您正在测试x在循环中等于1,但在conf(int)方法中使用-2
  • 您的while循环实际上没有测试x位“分配”1到x
  • 你的意思是:

    while (x == -2)
    
    您也可以使用以下方法保存对#cont的方法调用:

    x = cont(y);
    cout << x;
    
    x=cont(y);
    
    cout while(x=1)执行赋值。使用==进行比较。我已经这样做了,现在它可以工作了。这是一个简单的错误。谢谢!是的,我最初把它作为小于符号,当我更改逻辑时,我不小心只放了一个等号。我还将删除cout语句的返回值。谢谢!