Fehlerabfrage bei ifstream



  • Hallo,
    habe folgenden code:

    ifstream _in(str_IniPath.c_str());
    	int bracketpos;
    
    	while(getline(_in,line))
            {.....
            }
    

    Wie kann ich nun abfragen, ob _in nun tatsächlich str_IniPath oeffnen konnte?
    (vgl. fopen(....))
    danke
    t. o.



  • Vielleicht mit is_open()?



  • Theresa O. schrieb:

    Hallo,
    habe folgenden code:

    ifstream _in(str_IniPath.c_str());
    	int bracketpos;
    
    	while(getline(_in,line))
            {.....
            }
    

    Wie kann ich nun abfragen, ob _in nun tatsächlich str_IniPath oeffnen konnte?
    (vgl. fopen(....))
    danke
    t. o.

    ifstream _in(str_IniPath.c_str());
       if(!_in) {
          std::cerr << "Cant open " << str_IniPath << std::endl;
          return;
       }
       int bracketpos;
    
       while(getline(_in, line)) {
    
          // ...
    
       }
       if(!_in.eof())
          std::cerr << "Error reading from " << str_IniPath << std::endl;
    


  • std::ifstream reader;
    reader.exceptions ( std::ifstream::eofbit | std::ifstream::failbit | std::ifstream::badbit );
    try
    {
        reader.open("some.file");
        while(std::getline(reader, line)
        {
            //...
        }
    }
    catch(std::exception & e)
    {
        std::cerr << e.what() << '\n';
    }
    


  • Danke für die Hilfe.
    Aber wo kann ich mir ifstream genauer ansehen?
    Stichwort: std::ifstream::eofbit | std::ifstream::failbit | std::ifstream::badbit
    Grüsse
    T.O.


Anmelden zum Antworten