Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.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++ 我需要结束一个Do-While循环_C++ - Fatal编程技术网

C++ 我需要结束一个Do-While循环

C++ 我需要结束一个Do-While循环,c++,C++,我有一个我创建的菜单。我有所有的选项,用户也可以去看某个特定的东西,所以为了让他们继续程序,他们必须键入end以继续下一段代码。但我的问题是,当他们输入end时,它会把它变成一个无限循环。这里有人能告诉我密码吗 int var = 1; int main=1; char dd[] = "done"; do { cout << "\n\n\nEnter the number of one of the fol

我有一个我创建的菜单。我有所有的选项,用户也可以去看某个特定的东西,所以为了让他们继续程序,他们必须键入end以继续下一段代码。但我的问题是,当他们输入end时,它会把它变成一个无限循环。这里有人能告诉我密码吗

    int var = 1;
    int main=1;
    char dd[] = "done";

      do
        {
            cout << "\n\n\nEnter the number of one of the following and I will explain!\n";
            cout << "1.integer  2.boolian   3.floats   4.doubles   5.character";
            cout << "\n\n[when you are done type 'done' to continue]\n\n";
            cin >> option || dd;

            if (option == 1)
            { blah blah blah blah
            }


            else if (option ==2)
            {
             blah blah blah
            }

            else if (dd=="done") //when user types 'done' it goes into infinite loop.
              { break;}

      while (var==1);
int-var=1;
int main=1;
char dd[]=“完成”;
做
{
库特
此代码不会将输入同时提取到
选项
dd
。运算符
|
不像“管道”那样使用。相反,您可以通过再次使用
将调用链接到提取程序:

cin >> option >> dd;

此外,您应该对
dd
使用
std::string
,因为比较C字符串只会比较它们的地址,而不是实际内容。

您需要检查失败位-请参阅修复行
cin>>选项后的
您需要比较原始C字符串(
char*
)和
strcmp()
。要比较是否
dd
==“完成”,请使用strcmp(dd,“完成”)==0

编辑:

要使用strcmp
,您应该
#包括


EDIT2:正如其他答案和评论中指出的,看到整个代码,最好改为
std::string
。但是,如果你真的想继续使用
char*
,请使用
strcmp
进行上述比较。

你认为
cin>>选项| dd;
有什么作用?你不能比较像“dd=”这样的字符串“完成”。改用std::string。@Ed Heal
std::string
在这种情况下(来自流等的东西)更好。我只是不想破坏作者使用的数据类型。@wesley.mesquita“我只是不想破坏作者使用的数据类型。”这就是为什么我没有否决你的答案。。。
cin >> option >> dd;