我对C++非常陌生,在这段简单的代码上遇到了麻烦:
#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没有做任何事情),但问题是它也结束了整个程序。因此,代码中的最后一行没有做任何事情.例如,如果我将输入输入为:
BLUE然后按Ctrl+D,程序立即以返回值0结束。
任何帮助都将不胜感激,为什么这种情况会持续发生。谢谢!
-编辑-编辑
有一些论点认为ctrl +z目前并不表示CLion (在windows上操作)的EOF。在这种情况下,有人知道CLion的解决方案吗?
发布于 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
https://stackoverflow.com/questions/47653901
复制相似问题