我是C ++的新手,非常感谢你的帮助!
我正在尝试为字符串创建一个'If'条件,例如:
#include <iostream>
using namespace std;
int main()
{
string message = "HELP";
int password;
cout<<"Please enter password";
cin<<password;
if (password = message);
}
else {
cout<<"Please try again...";
}
cin.ignor()
}
然而,Int不是我认为的字符串,当然还有Code :: Blocks它会发布在这种情况下它不起作用的错误。所以当C ++上的某个人为int X保存一个变量时基本就是这样; X = 3;例如,我们怎么能用字母做到这一点,以便我可以弹出条件消息框!
再次感谢您的帮助! = d
答案 0 :(得分:2)
=是作业。 ==是比较。另外,不要在if语句后加分号。
答案 1 :(得分:2)
这是第一个问题:
int password;
password
的数据类型也应该是std::string
,因为message
是std::string
(包含有效密码)。
所以第一个修复是这样的:
std::string password;
第二个问题是您在'='
中使用if
。使用'=='
(相等运算符),而不是'='
(赋值运算符)。
答案 2 :(得分:2)
#include <iostream>
using namespace std;
int main()
{
string message = "HELP";
string password;
cout << "Please enter password";
cin >> password;
if (password != message)
{
cout << "Please try again...";
}
return 0;
}
应该工作得更好。
答案 3 :(得分:1)
首先,如果您希望密码是任何东西,而不仅仅是数字,请使用std :: string。 要比较两个值,请使用== NOT =。
#include <string>
#include <iostream>
int main()
{
std::string s1("First string");
std::string s2("Second string");
if(s1 != s2) {
std::cout << "Strings don't match!" << std::endl;
}
}
在您的代码中,您还没有正确关闭所有块并拼错拼写cin.ignore()。
答案 4 :(得分:0)
你在if条件下使用了错误的运算符。您使用了=哪个是赋值运算符。你需要使用==这是比较。在if不属于if之后你也有一个分号,并且你的语句的括号不对,
答案 5 :(得分:0)
您可能想要做的是:
#include <iostream>
// using namespace std; don't do this (its just lazy)
// Also its a bad habit to get into.
int main()
{
std::string message = "HELP";
// int password; I assume you want a password to be a string
std::string password;
std::cout << "Please enter password"\n; // Added \n to make it print nicely.
// cin<<password; The << is wrong should be >>
//
// Bu this reads a single word (separated by spaces).
// If you want the password to hold multiple words then you need
// to read the line.
std::getline(std::cin, password);
// if (password = message); This is assignment. You assign message to password.
// Also the ';' here means that nothing happens
// if it was true
//
// You are then trying to test the result of the
// assignment which luckily does not work.
// Use the '==' to test for equality.
if (password == message)
{
}
else
{
cout << "Please try again...";
}
// cin.ignor() This does nothing.
// What you are trying to do is get the program to wait
// for user input. You should do something like this:
std::cin.ignore(std::numeric_limits<std::streamsize>::max()); // Flush the buffer
std::cout << "Hit enter to continue\n";
std::cin.get();
}