Befhel übergeben?



  • Hallo,

    kann mir mal bitte jmd. erklären wenn eine Funktion ein CONST *char benötigt,
    wie ich dieses char am besten deklarieren kann?

    char [20]Test; ???

    wenn ich nun char einlese aus einer Datei und übergeben möchte, sind diese ja variabel,zwischen 10 und 20, wie mach ich das?

    danke 🙂



  • :xmas2: bahnhof :xmas1:



  • Hi,

    am Besten so:

    #include <string>
    
    int main() {
       std::string s;
    
       // jetzt kommt das Zeug in s rein
       s = "Meine Daten";
    
      // ... und so ruft man die Funktion auf:
       f(s.c_str());
      // c_str() liefert die Daten als const char* zurück
    

    Gruß,

    Simon2.



  • kann mir mal bitte jmd. erklären wenn eine Funktion ein CONST *char benötigt,
    wie ich dieses char am besten deklarieren kann?

    char [20]Test; ???

    Naja... wie wäre es hiermit:

    const char variable[20];
    

    ansonsten kann man später auch Typenwandeln:

    reinterpret_cast<const *char>(&variable);
    

    dann, in die Funktion:

    func1(variable);
    

    ⚠ - nicht getestet.



  • Wenn eine Funktion einen "const T *" (T = beliebiger Typ) erwartet, bedeutet das nicht unbedingt, daß der übergebene Wert konstant sein muß - er wird nur von der Funktion nicht verändert.

    Aber für Strings sollte man in C++ am besten nur std::string verwenden 🙂 (siehe Simon2)



  • Oh, sry hab den zweiten Satz nicht gelesen 😃 Ja, dann stimmts nadürlich, die string- sache. Soll ja "Variabel" sein. Außerdem finde ich, dass man nach diesem Text nicht eindeutig sagen kann, was die funktion wirklich will, z.b.: wenn Funktion: "unsigned char funktion(const *char)" lauten würde, hätte ich recht gehabt :D(,oder?)


Anmelden zum Antworten