首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确地退出条件表达式中带有cin的while循环?(C++,CLion)

如何正确地退出条件表达式中带有cin的while循环?(C++,CLion)
EN

Stack Overflow用户
提问于 2017-12-05 12:41:54
回答 1查看 1.6K关注 0票数 0

我对C++非常陌生,在这段简单的代码上遇到了麻烦:

代码语言:javascript
复制
#include <iostream>
using namespace std;

int main() {
  int NumberOfNonBlanks = 0;
  int NumberOfUpperCase = 0;
  char c;
  while (cin >> c) {
    ++NumberOfNonBlanks;
    if ((c>='A' && (c <= 'Z'))) {
      ++NumberOfUpperCase;
    }
  }
  cout << "Nonblank characters : " << NumberOfNonBlanks << endl 
       << "Uppercase characters : " << NumberOfUpperCase << endl;
}

我的操作系统是Windows,Ctrl+D似乎退出了循环(Ctrl+Z没有做任何事情),但问题是它也结束了整个程序。因此,代码中的最后一行没有做任何事情.例如,如果我将输入输入为:

代码语言:javascript
复制
BLUE

然后按Ctrl+D,程序立即以返回值0结束。

任何帮助都将不胜感激,为什么这种情况会持续发生。谢谢!

-编辑-编辑

有一些论点认为ctrl +z目前并不表示CLion (在windows上操作)的EOF。在这种情况下,有人知道CLion的解决方案吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-05 12:59:36

Ctrl + D的意思是EOF,但它只在Linux中工作,如果您想在windows或cmd中向您的程序发送EOF,您需要使用Ctrl+Z,您可以从这个问题Ctrl+D doesn't stop application from executing in command window 中看到更多信息。

Ctrl+Z在我的窗口中可以很好地使用代码::块IDE

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47653901

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档