filestream zeile für zeile



  • hi,
    ich habe folgendes problem...

    ich habe eine datei in der hex werte drin stehen (source1: 34 2A 5C 73 B6 ....)
    dafür habe ich die datei in einem stream geöffnet und der string wird dann in ein byte-array convertiert

    ifstream file;
    file.open("datei.txt");
    unsigned char dataArray [256];
    int counter = 0;
    while(!file.eof())
    {
      string tmp;
      file >> tmp;
      dataArray[counter++] = (strToHex(tmp[0]) << 4) | strToHex(tmp[1];
    }
    

    aber ich muss nicht alles in das Array schieben, sondern nur manche zeilen (z.b. nur source2) und wenn nicht, dann kann ich gleich in die nächste zeile springen.
    wenn ich getline() verwende, dann habe ich aber ein string (momentane lösung) was ich net will, da ich mit dem stream arbeiten möchte.
    kann ich irgendwie in dem stream das zeilenende abfragen?
    habe auch schon mit getline einen string geholt und mit istrstream wieder in einen stream verwandelt .... ist ja aber auch doof.

    weis jemand einen rat?

    danke schonmal
    gruß pitrie



  • Das Zeilenende ist ein ganz normales Zeichen in deiner Datei, auch bekannt als '\n'. (außerdem könntest du den per getline() eingelesenen String auch von Hand zerlegen, wenn dir der Umweg über stringstreams zu aufwendig erscheint)

    PS: Da du sowieso den Zeilenanfang einlesen mußt, um zu erkennen, ob du die aktuelle Zeile "brauchst", schau dich mal nach ignore() um.



  • Dieser Thread wurde von Moderator/in CStoll aus dem Forum MFC (Visual C++) in das Forum C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten