Aus Zeile jedes Element abfragen

Baileysss

Grünschnabel
Hallo zusammen...

Ich lese eine CSV Datei Zeilenweise aus.
Bsp. für eine Zeile:

Name Vorname;1;5;5;9;4;

Diese wird in zeile ...
Code:
fgets(line[i], LAENGE, datei);
char* zeile = line[i];

...gespeichert. Kann mir jemand einen Tipp geben, wie ich an die einzelnen Zahlen ran komme?
Ich würde nämlich gerne immer pärchenweise vergleichen, also 1-5, 5-5, 5-9, 9-4


Alternativ habe ich auch:
Code:
while (getline (linestream, item, ';'))
        {
           itemnum++;
            cout << "Item #" << itemnum << ": " << item << endl;

			std::string myString = item;
			std::stringstream sstr(myString);
			sstr >> zahl;
}

Hier würde ich mir gerne das "nächste" item z.B. in Zahl 2 speichern und immer so weiter...
 
Zuletzt bearbeitet:
Hi.

Bitte verwende für Code die Code-Tags. Danke.
Ich lese eine CSV Datei Zeilenweise aus.
Bsp. für eine Zeile:

Name Vorname;1;5;5;9;4;

Diese wird in zeile ...

C:
fgets(line[i], LAENGE, datei);
char* zeile = line[i];

...gespeichert. Kann mir jemand einen Tipp geben, wie ich an die einzelnen Zahlen ran komme?
Ich würde nämlich gerne immer pärchenweise vergleichen, also 1-5, 5-5, 5-9, 9-4
Mit sscanf.
Alternativ habe ich auch:

C++:
while (getline (linestream, item, ';'))
        {
           itemnum++;
            cout << "Item #" << itemnum << ": " << item << endl;

			std::string myString = item;
			std::stringstream sstr(myString);
			sstr >> zahl;
}

Hier würde ich mir gerne das "nächste" item z.B. in Zahl 2 speichern und immer so weiter...
C++:
std::string line;
while (std::getline(linestream, line)) {
  std::istringstream isstr(line);
  int zahl1, zahl2; // usw. oder besser ein Array
  std::string name_vorname;
  if (std::getline(isstr, name_vorname, ';') &&
      isstr >> zahl1 && isstr.get() == ';' &&
      isstr >> zahl2 // usw.
     )
  {
  } else {
    // Fehler
  }
}
Gruß
 
Geht das auch ohne std::getline usw.?
Ich meine ich habe ja schon "vorarbeit" geleistet und möchte jetzt "nur" auf die Zahlen einzeln zugreifen. Für das Pärchen 1-5 soll es einen Punkt geben, für das Pärchen 5-5 null Punkte, 5-9 auch null punkte usw.
Ich habe eine Lösung mit Integerwerten, dafür musste ich aber vorher in der Datei die Zahlenketten in kleinere Blöcke unterteilen, da ja sonst die Integerwerte zu groß waren...
(Es handelt sich pro Zeile um ca. 30 Zahlen)
 
Geht das auch ohne std::getline usw.?
Ich meine ich habe ja schon "vorarbeit" geleistet und möchte jetzt "nur" auf die Zahlen einzeln zugreifen. Für das Pärchen 1-5 soll es einen Punkt geben, für das Pärchen 5-5 null Punkte, 5-9 auch null punkte usw.
Ich habe eine Lösung mit Integerwerten, dafür musste ich aber vorher in der Datei die Zahlenketten in kleinere Blöcke unterteilen, da ja sonst die Integerwerte zu groß waren...
(Es handelt sich pro Zeile um ca. 30 Zahlen)
Es gibt immer andere Lösungen. Aber wozu willst du es dir schwerer machen?

Und was meinst du mit "Vorarbeit"?

Gruß
 
Zurück