zoukankan      html  css  js  c++  java
  • 循环和文本输入

    循环和文本输入

    • 一个简单任务:逐字符地读取来自文件或键盘的文本

    1. 使用原始的cin进行输入

    使用某个特殊字符——有时被称为哨兵字符,将其作为停止标记。

    • ** cin 在读取char值时,与读取其它基本类型一样,cin将忽略空格和换行符。因此输入中的空格没有被回显,也没有被包括在计数内。更为复杂的是,发送给cin的输入被缓冲。这意味着只有在用户按下回车键后,他输入的内容才会被发送给程序。**
    • 程序代码如下:
      void textin1()
    {
    	char ch;
    	int count = 0;
    
    	cout << "Enter characters; enter # to quit:
    ";
    	cin >> ch;
    	while (ch != '#')
    	{
    		cout << ch;
    		++count;
    		cin >> ch;
    	}
    	cout << endl << count << " characters read
    ";
    }
    

    2. 使用cin.get(char)进行补救

    cin.get(char)读取输入中的下一个字符(即使它是空格),并将其赋给变量ch。

    • 程序代码如下:
    void textin2()
    {
    	char ch;
    	int count = 0;
    
    	cout << "Enter characters; enter # to quit:
    ";
    	cin.get(ch);
    	while (ch != '#')
    	{
    		cout << ch;
    		++count;
    		cin.get(ch);
    	}
    	cout << endl << count << " characters read
    ";
    
    }
    
    

    3. 文件尾条件

    如果输入来自文件,则可以使用一种功能更强大的技术——检测文件尾(EOF)。

    • 检测到EOF后,cin将两位(eofbit和failbit)都设置为1。
      可以通过成员函数eof()来查看eofbit是否被设置;如果检测到EOF,则cin.eof()返回true,否则返回false.
      如果eofbit或failbit被设置为1,则fail()成员函数返回true,否则返回false。注意,eof()和fail()方法报告最近读取的结果;也就是说,它们在事后报告,而不是预先报告。因此,应将eof()和fail()测试放在读取后。
  • 相关阅读:
    APP界面设计之尺寸介绍
    设计师应该知道的那些事儿(一)
    PS制作高光导航背景
    URL长度限制
    问自己的技术问题
    JavaScript实现生成GUID(全局统一标识符)
    JS操作数组,for循环新技能get
    win7/Win8/Win10, IIS7.5/IIS8/IIS10 配置伪静态
    .NET WebAPI生成Excel
    .net WebAPI 传递对象参数
  • 原文地址:https://www.cnblogs.com/adtxl/p/11477870.html
Copyright © 2011-2022 走看看