std::string data = #include "datei_mit_string_inhalt"



  • hi ^^

    ich weiß, dass es geht, einen string per präprozessor zu sagen, was er beinhalten soll - in etwa so:

    std::string data (
    #include "test.txt"
    );
    

    leider weiß ich nicht mehr genau, wie das gemacht wird, nur das es im zuge einer aufgabe irgendeiner programmier-kontest-seite hier mal besprochen wurde - und iwie bringts das ja nich so wirklich nach #inlude zu suchen - selbst mit "#include textersetzung" (was mit ziemlicher sicherheit als erklärung gedient hatte), hab ich nichts brauchbares gefunden ><.
    in dem thread an sich ging es aber um die lösung einer aufgabe - in der man eine datei mit vielen namen auseinander nehmen sollte, ich glaube auch, dass es dort ein std::vector <std::string> war, aber das tut ja nix zur sache ^^

    bevor hier alle anfangen, rumzumeckern: es soll nur zu testzwecken dienen und ich bin noch nicht mal sicher, ob man es schafft, wenn in der datei " `s vorkommen ^^

    danke scho ma ^^
    bb



  • Ja sicher geht das. Der Präprozessor kopiert praktisch einfach nur den Inhalt der angegebenen Datei an die Stelle des #includes. Du kannst also statt

    std::string s = "blahblahblah";
    

    auch eine Datei mit dem String, "string.txt", anlegen:

    "blahblahblah"
    

    und dann schreiben

    std::string s = 
    #include "string.txt"
    ;
    

    Das muss jetzt so komisch aussehen, weil Präprozessordirektiven immer allein auf ihrer Zeile stehen müssen (von Kommentaren und Whitespace mal abgesehen).



  • joar - so ist mir das klar - aber ich dachte auch, dass man eine datei mit

    blabla sabbel
    

    haben kann - und die " am Anfang und Ende im Code an sich angeben kann ^^



  • unskilled schrieb:

    joar - so ist mir das klar - aber ich dachte auch, dass man eine datei mit

    blabla sabbel
    

    haben kann - und die " am Anfang und Ende im Code an sich angeben kann ^^

    Nein das geht nicht … aber wieso liest Du die Datei nicht einfach konventionell zur Laufzeit ein?



  • Oder wieso nimmst du nicht einen Schritt in deinen Build-Prozess auf, der aus einer gegebenen Textdatei ein Stringliteral macht? In einer Scriptsprache deiner Wahl sollte das ein leichtes sein. Anfügen von Gänsefüßchen reicht übrigens nicht.


Anmelden zum Antworten