Wieso Segmentation fault ??



  • Hallo,

    ich möchte einfach nur eine Zahl in ein ASCII Zeichen umwandeln und dann per sprintf in eine Ausgabezeile schreiben. Dabei erscheint bei meiner sprintf Anweisung immer "Segmentation fault". Das kompilieren geht problemlos (mit g++). Könnte vielleicht jemand so freundlich sein und mich auf den Fehler hinweisen. Weil ich echt nicht verstehe, wieso das nicht funktioniert.

    Vielen Dank

    \1:
    ----------------------------------------------------
    int zahl = 66;
    char message[256];

    char wert = (char)zahl;
    cout << wert << endl;
    sprintf(message,"ASCII: %s",wert);
    cout << message << endl;
    -----------------------------------------------------

    Ausgabe:
    -----------------------------------------------------
    B
    Segmentation fault



  • wert ist kein string, sondern ein char, könnte sein, dass es daher kommt, probier mal

    sprintf(message, "ASCII: %c", wert)
    


  • äm ja hast recht... echt doof das ich da nicht drauf gekommen bin. Geht.. danke!!!



  • Wie wäre es mit stringstreams?

    int zahl = 66;
    std::string message;
    
    char wert = static_cast<char>(zahl);
    std::cout << wert << std::endl;
    std::ostringstream ss;
    ss << "ASCII: " << wert;
    message = ss.str();
    std::cout << message << std::endl;
    

Anmelden zum Antworten