C++ 我需要结束一个Do-While循环
我有一个我创建的菜单。我有所有的选项,用户也可以去看某个特定的东西,所以为了让他们继续程序,他们必须键入end以继续下一段代码。但我的问题是,当他们输入end时,它会把它变成一个无限循环。这里有人能告诉我密码吗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
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 Healstd::string
在这种情况下(来自流等的东西)更好。我只是不想破坏作者使用的数据类型。@wesley.mesquita“我只是不想破坏作者使用的数据类型。”这就是为什么我没有否决你的答案。。。
cin >> option >> dd;