Die Rolle von std::ws (whitespace) beim Lesen von Daten

Gespeicherten Daten in meiner Datei ist (Leerzeichen, Hinzugefügt am Anfang und Ende, auf den Zweck, für diesen test):

1 2 3

Laden der Daten " mit dem folgenden code mit oder ohne "std::ws" nicht zu keinen Unterschied. Also ich bin verwirrt durch die Rolle des "std::ws" wie ich gesehen habe code verwenden. Kann mir jemand ein bisschen erklären? Danke!

void main ()
{
ifstream inf; 
inf.open ("test.txt"); 

double x=0, y=0, z=0;
string line;

getline(inf, line);
istringstream iss(line);
//Using "std::ws" here does NOT cause any difference
if (!(iss >> std::ws >> x >> y >> z >> std::ws))
{
    cout << "Format error in the line" << endl;
}
else
{
    cout << x << y << z << endl;
}
iss.str(std::string ());
iss.clear();

cin.get();

}
  • Whitespace wird entfernt, am Anfang der Extraktion standardmäßig. Wenn Sie std::ios_base::noskipws auf oder unformatierte Eingabe dann std::ws nützlich sein kann.
  • Die Flagge heißt skipws; noskipws ist ein manipulator-Funktion.
  • der primäre nutzen ist nicht so viel, wenn std::ios_base::skipws deaktiviert ist, aber eher mit unformatierter Eingaben, die nicht überspringen der führenden Leerräume.
InformationsquelleAutor H. Wang | 2015-09-03
Schreibe einen Kommentar