CString -> fprintf()



  • Hallo!

    Ich arbeite gerade an einem kleinen Programm für meinen PDA.
    Dabei nehme ich den Text aus mehreren Eingabefeldern und füge die einzelnen CString's zu einem neuen CString zusammen.
    Das funktioniert problemlos.
    Eigendlich soll der Text aber in eine Datei geschrieben werden:

    Das versuche ich wie folgt:

    char daten[255];
    FILE * file;
    :
    file=fopen("daten.csv", "a");
    fprintf(file, daten); //Der CString muss vorher nach "daten" konvertiert werden.
    fclose(file);
    :
    

    Dafür muss ich die Daten natürlich konvertieren. Ich habe ungefähr ein Dutzend Beiträge zum Thema CString->Char durchsucht und getestet.
    Aber ich bekomme keine kompatiblen Daten für die fprintf-Funktion.

    Kann es sein das die verschiedenen Methoden ("GetBuffer", "LPCTSTR", ...) mit embedded Visuell C++ 4 nicht funktionieren? Ist da irgendwas anders implementiert.

    Ich wäre für ein wirklich funktionierendes Code-Beispiel dankbar.
    MfG



  • Ist das eine UNICODE-Anwendung?

    LPCTSTR ist, wenn das Makro UNICODE definiert ist, als LPCWSTR definiert, sonst LPCSTR. Ggf. musst Du entweder von UNICODE nach ANSI konvertieren, oder von UTF-16 nach UTF-8. Es gibt auch einen Format-Konvertierer in fprintf(), mit dem Du das erledigen kannst (z.B. "%S" bzw. "%ls" statt "%s").

    Der zweite Parameter bei fprintf() sollte auf jeden Fall ein Format-String sein, also lieber

    fprintf( datei, "%s", puffer );
    

    schreiben.

    Uebrigens: es kann tatsaechlich sein, dass die Embedded-Version der Libraries bzw. des Betriebssystems nur eingeschraenkte Funktionalitaet haben. Das sollte aber in der jeweiligen Dokumentation stehen.


Anmelden zum Antworten