新微赢技术网

标题: 如何在提示输入时候检查只有ENTER键按下的错误 [打印本页]

作者: 轻松由我    时间: 2009-11-6 01:48
标题: 如何在提示输入时候检查只有ENTER键按下的错误
下面代码要求在终端输入文件名,如果输入错误,则有异常提示,并要求第二次输入,直到输入正确,然后把文件里面的内容在终端显示出来。如果在提示输入文件名的时候,只按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,也就是




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2