zoukankan      html  css  js  c++  java
  • 问题解决: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,可见博大精深的中国汉字确实是占两个字符!(骄傲脸)

  • 相关阅读:
    洛谷 P2023 BZOJ 1798 [AHOI2009]维护序列
    洛谷 P1640 BZOJ 1854 [SCOI2010]连续攻击游戏
    洛谷 P4300 BZOJ 1266 [AHOI2006]上学路线route
    洛谷 P1886 滑动窗口
    洛谷 P1063 能量项链
    洛谷 P1156 垃圾陷阱
    洛谷 P1854 花店橱窗布置
    洛谷 P3800 Power收集
    洛谷 P2285 BZOJ 1207 [HNOI2004]打鼹鼠
    day31
  • 原文地址:https://www.cnblogs.com/dindin1995/p/13059141.html
Copyright © 2011-2022 走看看