getline - string einlesen



  • ty werner^^
    naja - ich hab mir mal die freiheit genommen, die exceptions komplett unter den tisch fallen zu lassen; wie das eigetlich fast jeder bei streams macht^^

    std::istream& getline(std::istream& in, std::string& out, char delim = '\n') 
    {
      out.clear(); 
    
      char to_add; 
      while(in.get(to_add)) 
      { 
        if(to_add == delim) 
          return in; 
    
        out.push_back(to_add); 
      };
    
      if(in.rdstate() & std::ios::eofbit && !out.empty())
        in.clear(std::ios::eofbit);
    
      return in; 
    }
    

    performance zu vergleichen ist natürlich ein wenig schwachsinnig, wenn man std::istream::get nutzt, aber ich habs trotzdem mal gemacht:
    ca. 0,17 (std::getline) zu ca. 1,16 (test::getline).
    also ca. die 7fache laufzeit... ^^

    bb


Anmelden zum Antworten