首页 > 其他 > 详细

循环和文本输入

时间:2019-09-06 20:01:38      阅读:81      评论:0      收藏:0      [点我收藏+]

循环和文本输入

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

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

    使用某个特殊字符——有时被称为哨兵字符,将其作为停止标记。
    • ** cin 在读取char值时,与读取其它基本类型一样,cin将忽略空格和换行符。因此输入中的空格没有被回显,也没有被包括在计数内。更为复杂的是,发送给cin的输入被缓冲。这意味着只有在用户按下回车键后,他输入的内容才会被发送给程序。**
  • 程序代码如下:
  void textin1()
{
    char ch;
    int count = 0;

    cout << "Enter characters; enter # to quit:\n";
    cin >> ch;
    while (ch != '#')
    {
        cout << ch;
        ++count;
        cin >> ch;
    }
    cout << endl << count << " characters read\n";
}

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

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

  • 程序代码如下:
void textin2()
{
    char ch;
    int count = 0;

    cout << "Enter characters; enter # to quit:\n";
    cin.get(ch);
    while (ch != '#')
    {
        cout << ch;
        ++count;
        cin.get(ch);
    }
    cout << endl << count << " characters read\n";

}

3. 文件尾条件

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

  • 检测到EOF后,cin将两位(eofbit和failbit)都设置为1。
    可以通过成员函数eof()来查看eofbit是否被设置;如果检测到EOF,则cin.eof()返回true,否则返回false.
    如果eofbit或failbit被设置为1,则fail()成员函数返回true,否则返回false。注意,eof()和fail()方法报告最近读取的结果;也就是说,它们在事后报告,而不是预先报告。因此,应将eof()和fail()测试放在读取后。

循环和文本输入

原文:https://www.cnblogs.com/adtxl/p/11477870.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!