• 问题解决:C++使用while(cin>>ch)时键盘输入回车后仍难以终止程序运行


    终止的诀窍就是:ctrl+zctrl+zctrl+z!!!
    在VS2013中输入如下C++代码:功能是统计用户输入的字符个数
    #include<iostream>
    using namespace std;
    int main(){
    	char ch;
    	unsigned num=0;
    	cout << "请输入一段文本:" << endl;
    	while (cin >> ch){
    		++num;//统计字符个数
    	}
    	cout << "您输入的字符个数是:" << num << endl;
    	system("pause");
    	return 0;
    }
    

    (1)运行,输入abcde共5个字符后,回车,再输入ctrl+z,回车,得到结果如下:

    请输入一段文本:
    abcde
    ^Z
    您输入的字符个数是:5
    请按任意键继续. . .
    

    既然程序都写好了,就多测试几个例子吧,以增进理解:
    (2)再次运行,输入abcde共5个字符后,不回车,直接紧接着e输入ctrl+z,回车后,光标闪烁,仍没有成功退出while循环,此时,再次输入ctrl+z,回车,得到结果如下:

    请输入一段文本:
    abcde^Z
    ^Z
    您输入的字符个数是:6
    请按任意键继续. . .
    

    此时字符数是6,比上例多1,说明ctrl+z被当做了一个字符计算入内。么有统计回车符。

    (3)测试一下如果这段文本中包含了空格的情况:

    请输入一段文本:
    abc e
    ^Z
    您输入的字符个数是:4
    请按任意键继续. . .
    

    可见,空格并没有被计算在内。

    既然英文的都试过了,那就输入中文看看:
    (4)再次运行,输入“我想吃汉堡”共5个汉字后,回车,再输入ctrl+z,回车,得到结果如下:

    请输入一段文本:
    我想吃汉堡
    ^Z
    您输入的字符个数是:10
    请按任意键继续. . .
    

    5个汉字统计出的字符个数是10,可见博大精深的中国汉字确实是占两个字符!(骄傲脸)

  • 相关阅读:
    Java——快速排序
    Java——归并排序
    Java——递归
    Java——希尔排序
    Java——插入排序
    Java——选择排序
    ES6快速入门
    ECharts is not Loaded
    scoped的规则
    css哪些样式属性可以继承
  • 原文地址:https://www.cnblogs.com/dindin1995/p/13059141.html
Copyright © 2020-2023  润新知