ssl*_*pie 0 c++ xcode if-statement c++11
我前几天正在使用xcode,正在开发基于文本的对话游戏.
#include <iostream>
int main()
{
std::cout<<"Conversation simulator requires you to type in all caps for all of your replies"<<std::endl;
std::cout<<"Type your first and last name!"<<std::endl;
std::string fname = " ";
std::string lname = " ";
bool samename = false;
std::cin>> fname >> lname ;
if (fname == "MUSCLE" and lname == "MAN")
std::cout<< "Wow, we have the same first and last name!"<<std::endl;
samename = true;
else
std::cout<< fname << " "<< lname << "is a very nice name"<<std::endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我似乎没有什么不对,但Xcode不会运行,因为在这一行:
else
Run Code Online (Sandbox Code Playgroud)
它期待一个表达?我想不出那可能意味着什么.
如果你想在下面执行多个语句,你需要大括号if.这是一个为我编译的修复程序.
#include <iostream>
int main()
{
std::cout<<"Conversation simulator requires you to type in all caps for all of your replies"<<std::endl;
std::cout<<"Type your first and last name!"<<std::endl;
std::string fname = " ";
std::string lname = " ";
bool samename = false;
std::cin>> fname >> lname;
if (fname == "MUSCLE" and lname == "MAN") {
std::cout<< "Wow, we have the same first and last name!"<<std::endl;
samename = true;
} else {
std::cout<< fname << " "<< lname << "is a very nice name"<<std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
你忘记了if-block的花括号:
if (fname == "MUSCLE" and lname == "MAN") {
std::cout<< "Wow, we have the same first and last name!"<<std::endl;
samename = true;
}
else
std::cout<< fname << " "<< lname << "is a very nice name"<<std::endl;
Run Code Online (Sandbox Code Playgroud)
没有它们,只有下一个语句(在你的情况下输出)属于if.因此,在下一行中设置标志会导致else错误.