Schreiben eines char** der Länge int*



  • Hallo,

    wie schreibe ich am besten einen char** mit der Länge int*. Habe in den FAQ dazu nichts gefunden. Muss ich hier zeile für zeile schreiben?

    Danke!
    mfg,
    shed



  • mach mal nen veranschaulichendes Beispiel wie du das meinst ... kann mir da so nix drunter vorstellen ^^



  • muss ein xml file schreiben, dass ich zuvor geparst habe. Ich bekomme vom Parser folgendes zurück:

    char** buffer;
    int*   len;
    

    Dieser Buffer und die Länge repräsentieren mein XML-File das ich schreiben muss (myFile.xml). Bin mir aber nicht sicher wie ich das am besten machen. Soll ich zeilenweise schreiben oder gibt es eine write methode die einen char** und int* als parameter akzeptiert.



  • Hallo

    Aus einem Array von Zeichenketten allein läßt sich nicht eine sinnvolle XML-Datei erstellen. Es sei denn du sagst uns zusätzliche Angaben zu Bedeutung und gewünschtem Aufbau.

    bis bald
    akari



  • Ich vermute mal, das es so funktionieren könnte:

    fwrite(*buffer,1,*len,stdout);
    


  • kann mir bitte jemand erklärn, warum jemand überhaupt einen einzelnen integer wert als pointer übergeben sollte? 🙄



  • vielleicht kann er aus irgendwelchen gründen kein call by reference machen ud will deshalb den pointer auf den integer

    trotzdem wäre ein codeschnipsel nicht schlecht :p



  • Sieht eher danach aus als würdest du einen char* der Länge int "len" zurückbekommen.

    void write_smth( std::ostream& out )
    {
      char* buf;
      int   len;
      xml_parse(&buf, &len);
    
      // buf nullterminiert?
      out << buf;
      // ansonsten:
      std::copy(buf, buf+len, std::ostream_iterator<char>(out));
    }
    
    int main()
    {
      std::ofstream out("output.file");
      write_smth(out);
    }
    

    Falls dich das nicht weiter bringt, poste einfach mal die Parserdoku.


Anmelden zum Antworten