• 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"然后回车,表示输入结束。

  • 相关阅读:
    LiveBinding应用 dataBind 数据绑定
    判断当前运行的平台
    客户端如何连接 DataSnap Server 调用服务的方法
    创建DataSnap Server
    FireDACQuery FDQuery New
    BDE 退出历史 迁移至FireDAC
    窗口叉叉变灰
    c++builder XE6 Remote Debuger 远程调试
    IP Editor IP控件
    C++访问mysql数据库
  • 原文地址:https://www.cnblogs.com/wenshanzh/p/3068547.html
Copyright © 2020-2023  润新知