zoukankan      html  css  js  c++  java
  • cin 文件结束符

    看了网上说的,c++的cin会检查“Ctrl + z”(Windows下)或“Ctrl + d" (Linux/Unix下)来判断输入是否结束。

    其本质是检查cin.bad()的调用结果,若为true,则结束输入。

    对于下面这两种情况:

    1)
    int
    val; vector<int> vals; while( cin >> val) { vals.push_back(val); }
    2)  
    string val; vector<string> vals; while( cin >> val) { vals.push_back(val); }

    对于1),由于输入的值要求能被转换为int,因此 在控制台输入 “ 1 5 7 ^z",回车后,会将 1, 5, 7 存入vector,而遇到 ^z时,由于无法转换,cin.bad()为true, 因此结束输入。因此,此时不仅可以输入 ctrl + z ,还可以输入任何非整数/浮点数 来作为结束符。

    对于2),输入的值存为string,此时 若输入” a  abc   ^z",再回车, 由于^z之前有合法的字符串,因此^z也被当做一个char字符来处理,被放入输入缓冲区,而无法结束输入, 打印时,vals中 将输出“a abc ->".若想结束输入,则应该先输入”a abc"回车,将字符串录入,之后 再输入“^z"然后回车,表示输入结束。

  • 相关阅读:
    Pandas | 21 日期功能
    Pandas | 20 级联
    Pandas | 19 合并/连接
    Pandas | GroupBy 分组
    Pandas | 缺失数据处理
    Pandas | 16 聚合
    Pandas | 15 窗口函数
    Pandas | 14 统计函数
    Pandas | 13 索引和选择数据
    Pandas | 12 选项和自定义
  • 原文地址:https://www.cnblogs.com/wenshanzh/p/3068547.html
Copyright © 2011-2022 走看看