如何终止Clion中接收字符串输入的while(cin>>str)循环?
CLion 环境下
while(cin>>str) 无法通过Ctrl+Z/Ctrl+D终止的解决方案 该问题核心为CLion默认运行环境的配置兼容问题,与代码逻辑无关。标准终端环境下,Windows按Ctrl+Z、Unix系统按Ctrl+D触发EOF终止while(cin>>str)的逻辑完全成立,仅在CLion默认配置下无法生效。
你使用的测试代码无逻辑错误:
#include <iostream> int main() { std::string str; while(std::cin>>str) { } return 0; }
解决方法
方案1:修改CLion运行配置,无需离开IDE即可解决
- 打开CLion设置路径:
File → Settings → Tools → Terminal - 取消勾选
Run in PTY(部分旧版本CLion对应选项为Use legacy console) - 保存设置后重启CLion,再次运行代码
- 运行程序后先输入任意内容按回车,再按下对应系统的EOF快捷键即可触发终止:
- Windows系统按Ctrl+Z后再按一次回车
- Unix/Linux/macOS系统按Ctrl+D即可
方案2:直接在系统终端运行编译产物
不想修改IDE配置的情况下,找到项目编译生成的可执行文件,在系统自带的cmd、PowerShell或者原生终端中直接运行,即可正常响应系统默认EOF快捷键终止循环。
内容的提问来源于stack exchange,提问作者Abhishek Mane
相关产品推荐
相关产品推荐

