String engabe als #define



  • Hi,

    denk daran dass macros zur compilezeit ausgewertet bzw. ersetzt werden. Wenn dein program läuft kannst die nicht mehr zusammenbasteln weil der compiler die dann nicht sieht.



  • prolog schrieb:

    Hi,

    denk daran dass macros zur compilezeit ausgewertet bzw. ersetzt werden. Wenn dein program läuft kannst die nicht mehr zusammenbasteln weil der compiler die dann nicht sieht.

    häää

    kann ich jetzt den string nicht als magro ausgeben ??



  • Hi,

    Du kannst den wert ausgeben. Vielleicht versteh ich dich auch falsch.

    Für mich sieht es so aus als wolltest du die macros zur laufzeit zusammenbasteln also die namen der macros meine ich und dann erwarten dass du den wert der macros in einem string speichern kannst. Wenn dem nicht so ist, vergiss meinen
    post.



  • ich weiss nicht was das soll, du definierts da
    konstanten und wenn du auf sie zugreifen willst schliesst du sie in "" ein,
    dann wird das auch so interpretiert als wenn das normaler text,
    das heisst die auflösung des wertes deiner konstanten erfolgt erst gar nicht,
    weil der compiler eben gar net weisst dass du den wert der konstanten abfragen willst
    oder?



  • mit dem file code suche ich alle magross
    die werden dan ausgegeben die
    00000000000000000000000000000001
    bis
    99999999999999999999999999999999

    und dan hänge ich einfach das NAME_ oder TITE_ vornen dran.
    aber dan habe ich z.b.
    INFO_00000000000000000000000000000001 in einen string und will das in einen magro ausgeben.



  • Ja,

    dann hab ich dich doch richtig verstanden. Geht so aber nicht weil macros zur compilezeit also in dem moment wo du dein program kompilierst ersetzt werden. Wenn dein programm läuft ist das schon alles passiert. Du musst das also anders lösen.



  • hatt da jemand eine idee?
    Wie geht den sowas in cpp
    das ist jetzt php

    array(
    "titel" => "000000000000000000000000001",
    "titel2" => "000000000000000000000000002",
    usw
    )



  • std::mapstd::string,std::string code_table;
    wobei der erste string den titel und der 2te den code enthät.
    //edit
    alternativ könntest du auch
    nen std::set<std::pairstd::string,std::string > code_table; nehmen...



  • Hi,

    das geht zum beispiel mit einer map.

    #include <iostream>
    #include <string>
    #include <map>
    
    int main(){
       std::map<std::string,std::string> m;
    
       m["foo"]="bar";
    
       std::cout<<m["foo"]<<std::endl;
    
    }
    

    Ausgabe:

    bar

    So far ..



  • das was du da in php machst nennt sich wertzuweisung eines
    assoziativen arrays, unter dem stichwort solltest du eigentlich
    etwas finden können 😉


Anmelden zum Antworten