[问题] break while后 while仍持续进行条件判断

楼主: nthulibrary (Entropy)   2018-11-27 18:08:09
开发平台(Platform): (Ex: Win10, Linux, ...)
macOS
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
G++ 8
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
none
问题(Question):
int main在return 0后,terminal不会关掉程式
喂入的资料(Input):
n/a
预期的正确结果(Expected Output):
跳出while 结束程式
错误结果(Wrong Output):
要手动按enter才会跳
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
int main(){
string cmd;
while(cin >> cmd){
if(cmd == "E") break;
else //do something;
}
return 0;
}
补充说明(Supplement):
设计是让程式读到"E"后就跳出while,然后直接return 0;
可是看来break之后它还在"cin >> cmd"
要怎么确实的跳出循环然后结束程式?
作者: djshen (djshen)   2018-11-27 18:17:00
你确定没按enter前真的有break?
作者: b0920075 (Void)   2018-11-27 23:52:00
c++字串可以这样比?原来可以,我一直以为要string.compare()
作者: tomsawyer (安安)   2018-11-28 19:49:00
=='E'(?)
作者: Paravion (ElonMusk)   2018-11-28 22:14:00
string有overload operators 可以直接比'E'会返回int “E”才能比
作者: eye5002003 (下一夜)   2018-11-29 08:38:00
看了一下cplusplus.com还真的只提到compare而已cppreference.com就有写
作者: longlongint (华哥尔)   2018-12-06 11:02:00
你确定互动中没按enter 可以离开cin那行吗

Links booklink

Contact Us: admin [ a t ] ucptt.com