【发布时间】:2014-09-04 06:48:23
【问题描述】:
我只是想学习如何使用 c++,而我想做的一件事是选择是或否“选择 y 继续选择 n 退出”我知道除此之外的其他方法方法,但我正在尝试更好地学习在 main() 之外创建函数的概念,这是我尝试使用的代码
int yesorno(char yn[]);
int yesorno(char yn[])
{
int a=0;
do
{
if (!strcmp( yn , "y" || yn , "Y"))
{
a=1;
}
else if (!strcmp( yn , "n" || yn ,"N"))
{
a=2;
}
else
{
cout<<"Please choose y or n \n";
cin>> yn;
a=3;
}
}while (a==0 || a>=3);
yn = "0";
return a;
}
我得到的错误是 if 和 else if 语句中的“没有匹配函数调用'strcmp'”但在 main() 中使用 strcmp 工作得很好,我有 #include 只是想知道我做错了什么.非常感谢任何帮助。
【问题讨论】:
-
你在 strcmp 中有布尔条件..
-
如果你学c++,就学会不使用
strcmp -
1.学习任何东西然后阅读手册页。 2. C++ 使用 std::string。
-
当我开始编程时,我也有这种误导性的直觉,当你有条件时,例如myvariable == 可以在其中放置逻辑或的东西,例如 myvariable == a ||湾。但这显然是错误的。像数学一样看待它——这不是一个有效的陈述。我的变量 == 一个 || myvariable == b 将是。所以,这样想吧。这同样适用于函数调用 - 所以在你的情况下,你必须 OR 函数调用。正是 Marco A. 所说的。
-
好的,谢谢 :) 我还处于学习 c++ 的初级阶段,除了简单循环的基础知识之外,我还需要编程任何东西,还有很多东西要学