设为首页收藏本站

新微赢技术网

 找回密码
 注册
搜索
热搜: 回贴
查看: 1568|回复: 0
打印 上一主题 下一主题

如何在提示输入时候检查只有ENTER键按下的错误

[复制链接]
跳转到指定楼层
1#
发表于 2009-11-6 01:48:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
下面代码要求在终端输入文件名,如果输入错误,则有异常提示,并要求第二次输入,直到输入正确,然后把文件里面的内容在终端显示出来。如果在提示输入文件名的时候,只按ENTER键,不按其他任何键,这当然是一种异常,但这时会让程序进入死循环,请问如何解决。

#include <iostream>
#include <fstream>
using namespace std;
int main ()
{

    char c, str[256]="";
    ifstream file;
    while(true)
    {
        
        // bitmask设置异常
        file.exceptions(ios::badbit|ios::failbit|ios::eofbit);
        cout << "Enter the name of an existing text file: " << endl;
        cin.get(str,256);
        try
        {
            file.open (str);
            cout << str << " is open for displaying content.\n";

            // 重置异常,避免读到文件最末尾时候出现的failbit 或 eofbit 异常而跳到
            // catch 代码区。windows机器上读过文件最末尾的bitmask为十进位6,也就是
您需要登录后才可以回帖 登录 | 注册

本版积分规则

申请友链|小黑屋|最新主题|手机版|新微赢技术网 ( 苏ICP备08020429号 )  

GMT+8, 2024-11-19 16:27 , Processed in 0.094886 second(s), 8 queries , Gzip On, Memcache On.

Powered by xuexi

© 2001-2013 HaiAn.Com.Cn Inc. 寰耽

快速回复 返回顶部 返回列表