#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string cmd;
while(strcmp(cmd.c_str(),"exit")==0 && strcmp(cmd.c_str(),"\exit")==0)
{
cin>>cmd;
cout<<cmd;
}
return 0;
}
我被困住了。
A std::string
可以使用实例直接与字符串文字进行比较!=
or ==
运营商。这会让你的比较更加清晰。
注意\e
不是有效的字符转义,您需要将\
如果你的意思是字面意思\\
.
while( cmd == "exit" && cmd == "\\exit" )
明显地cmd
不能同时等于两个不同的字符串,大概你的意思是!=
.
另外,还要考虑是否std::getline( std::cin, cmd )
比更合适std::cin >> cmd;
。在任何一种情况下,您都应该检查读取操作是否成功,否则如果流关闭或进入失败状态,您可能会陷入无限循环。
就我个人而言,我会采用类似的方法,假设您想像代码一样回显退出命令。
#include <string>
#include <iostream>
#include <ostream>
int main()
{
std::string cmd;
while (std::getline(std::cin, cmd))
{
std::cout << cmd << std::endl;
if (cmd == "exit" || cmd == "\\exit")
break;
}
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)