Ich versuche, eine Datei zu analysieren. Ich verwende derzeit den folgenden Code, würde aber mag esVersuchen, scanf durch sstream zu ersetzen
unsigned int vertexIndex[3], uvIndex[3], normalIndex[3];
const char* cstring = line.c_str();
int matches = sscanf(cstring, "f %d/%d/%d %d/%d/%d %d/%d/%d\n", &vertexIndex[0], &uvIndex[0], &normalIndex[0], &vertexIndex[1], &uvIndex[1], &normalIndex[1], &vertexIndex[2], &uvIndex[2], &normalIndex[2]);
Wenn ich mit einer sstream basierten Lösung versuchen, die folgenden ersetzen, erhalte ich unerwartete Ergebnisse
std::stringstream f(line);
f >> vertexIndex[0] >> uvIndex[0] >> normalIndex[0] >> vertexIndex[1] >> uvIndex[1] >> normalIndex[1] >> vertexIndex[2] >> uvIndex[2] >> normalIndex[2];
Ich bin sicher, dass ich Missverständnis bin die Stream-Nutzung irgendwie ... jede Hilfe wäre toll!
Wo berücksichtigen Sie das "f" und für die Schrägstriche? Ich sehe nicht, dass Sie irgendeinen Code dafür geschrieben haben. –
(Um ganz ehrlich zu sein, sogar in C++ ist Ihre ursprüngliche Lösung wahrscheinlich in den meisten Fällen vorzuziehen.) –
Mögliches Duplikat von [Lesen in einem bestimmten Format mit cin] (http://stackoverflow.com/questions/14901678/reading- In-a-specific-format-with-cin) –