【发布时间】:2020-01-13 18:15:53
【问题描述】:
我正在为我的 cis 简介做作业。条件之一是如果 name 变量与 EOFNAME 变量匹配,程序将退出。我做了一个 char 数组,这样我就可以存储一个名字,如果你不输入你的名字,而是退出它会退出。我制作了程序并编译它运行没有问题,除非你输入 Quit 它不只是继续并使用它作为名称变量
char name[10];
char EOFNAME[10] = "Quit";
void housekeeping()
{
do{ cout << "Enter first name or " << EOFNAME << " to quit this session" << endl;
cin >> name;
cin.get();
if ( name != EOFNAME)
{
mainloop();
}
else if(name == EOFNAME)
{
break;
}
}while(name != EOFNAME);
}
【问题讨论】:
-
这个
name == EOFNAME不会达到你的预期。 -
很遗憾你不能像这样比较数组。编译器认为您正在尝试比较它们的地址,而不是它们的内容。我可以推荐使用
std:: string而不是数组吗?如果不允许使用std::array,则需要使用strcmp或使用自己制作的循环进行逐字符比较。
标签: c++ arrays while-loop char conditional-statements