8 Stimmen

Wie std::stringstream Operator >> zu zwingen, eine ganze Zeichenfolge zu lesen?

Wie std::stringstream-Operator >> zu zwingen, eine ganze Zeichenfolge zu lesen, anstatt am ersten Leerzeichen zu stoppen?

Ich habe eine Vorlagenklasse, die einen aus einer Textdatei gelesenen Wert speichert:

template <typename T>
class ValueContainer
{
protected:
  T m_value;

public:
  /* ... */
  virtual void fromString(std::string & str)
  {
    std::stringstream ss;
    ss << str;
    ss >> m_value;
  }
  /* ... */
};

Ich habe versucht, Stream-Flags zu setzen oder zu deaktivieren, aber es hat nicht geholfen.

Klärung

Die Klasse ist eine Container-Vorlage mit automatischer Konvertierung in/aus Typ T. Strings sind nur eine Instanz der Vorlage, sie muss auch andere Typen unterstützen. Deshalb möchte ich den Operator >> dazu zwingen, das Verhalten von std::getline zu imitieren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X