float wert in .txt schrieben



  • Guten Tag liebe comunity 🙂
    ich habe eine frage, und zwa :
    wie kann ich einen float wert in einer txtdati speichen ?
    also fill hilft das zur lösung bei,:
    so bin ich auf den wert gekomen:

    float posiX;
    posiX = *(float*)(dld + cal);
    

    so also wollte jetzt posiX in einer .txt speichern, wie mach ich das ?



  • float value = ...;
    
    std::ostream stream("file.txt");
    stream << value;
    

    doku: http://www.cplusplus.com/reference/

    bb



  • unskilled schrieb:

    float value = ...;
    
    std::ostream stream("file.txt");
    stream << value;
    

    .. im besten Fall wird das abstürzen; besser:

    float posiX = ...;
        std::ofstream stream("file.txt");
        stream << posiX;
    

    'std::ofstream' macht ein '#include <fstream>' erforderlich.



  • Werner_logoff schrieb:

    unskilled schrieb:

    float value = ...;
    
    std::ostream stream("file.txt");
    stream << value;
    

    .. im besten Fall wird das abstürzen; besser:

    float posiX = ...;
        std::ofstream stream("file.txt");
        stream << posiX;
    

    'std::ofstream' macht ein '#include <fstream>' erforderlich.

    ok das funzt schonmal, nur die textdatei wird ja dann in der dll gespeichert.
    wie bekomme ich die dan auf den desktop, bzw dahin wo die dll auch ist ?



  • Werner_logoff schrieb:

    unskilled schrieb:

    float value = ...;
    
    std::ostream stream("file.txt");
    stream << value;
    

    .. im besten Fall wird das abstürzen; besser:

    float posiX = ...;
        std::ofstream stream("file.txt");
        stream << posiX;
    

    'std::ofstream' macht ein '#include <fstream>' erforderlich.

    japp, sry
    hab ich das f vergessen - hab ich aber auch erst nachm 20. mal lesen gesehen : D
    danke

    bb



  • k das funzt schonmal, nur die textdatei wird ja dann in der dll gespeichert.
    wie bekomme ich die dan auf den desktop, bzw dahin wo die dll auch ist ?

    In der DLL gespeichert ??

    float posiX = ...;
    std::ofstream stream("C:\\Dokumente und Einstellungen\\...\\Desktop\\file.txt");
    stream << posiX;
    


  • Der Desktop-Pfad ist je nach User, Windows-Version und ggf. Umleitung unterschiedlich, also macht es wenig Sinn, ihn fest zu verdrahten. Besser:

    #include <fstream>
    #include <string>
    #include <Shlobj.h>
    
    int main() {
      char desktop_path[MAX_PATH];
    
      if(S_OK != SHGetFolderPathA(NULL, CSIDL_DESKTOP, NULL, SHGFP_TYPE_CURRENT, desktop_path)) {
        return -1;
      }
    
      std::ofstream file((std::string(desktop_path) + "\\file.txt").c_str());
    
      file << "Hallo, Welt!" << std::endl;
    }
    

    Unter Linux sollte in aller Regel

    std::ofstream file("~/Desktop/file.txt");
    

    funktionieren; ich weiß aber nicht, ob das irgendwo tatsächlich standardisiert ist.

    Allerdings ist es regelmäßig schlechter Stil, Dateien fest verdrahtet ins Desktop-Verzeichnis zu schreiben, denn der Desktop wird damit schnell überfüllt. Meistens ist es besser, Ausgabedateien im Arbeitsverzeichnis zu erzeugen - man kann es, wenn man denn wirklich will, immer noch in einer .lnk-Datei o.ä. auf das Desktopverzeichnis setzen.


Anmelden zum Antworten