std::string und LPCSTR



  • Mein Programm liest eine Textdatei aus und speichert sie Zeilenweise in strings.
    Bestimmte Teile dieser strings möchte ich nun ausgeben (vorerst mal mit TextOut)
    Problem: die strings werden nicht aktzeptiert:

    #include <windows.h> 
    #include <shellapi.h>
    #include <fstream>
    #include <string>
    using namespace std;
    .
    .
    .
    ifstream InFile;
    InFile.open(PathOpen);
    string line[500];
    int l=0;
    
    while(!InFile.eof())
    {
        getline(InFile, line[l], '\n');
        l++;
    }
    InFile.close();
    .
    .
    .
    hdc = BeginPaint (fenster, &ps); 
    TextOut (hdc, 20, 20, line[0], 20); 
    EndPaint (fenster, &ps);
    
    error C2664: 'TextOutA': Konvertierung des Parameters 4 von 'std::string' in 'LPCSTR' nicht möglich
    

    Frage: Wie stelle ich das an, dass ich die strings ausgeben kann?

    Und falls dies das falsche Forum ist, bitte ich um Verzeihung und Verschiebung 🙂

    :: edit ::
    ok, das ganze hat sich erledigt (.c_str())



  • C++ verfügt über sehr bequeme Stream-Klassen, die sämtlichen Kleinkram von
    Ein- und Ausgaben übernehmen. Ungefähr so:
    instream input;
    ofstream output;
    char line[80];
    input.open("INPUT.TXT");
    output.open("OUTPUT.TXT");
    ...
    input >> line;
    output << line << endl;
    ...
    input.close();
    output.close();
    Ist besser als der von Dir versuchte Weg. Du brauchst dich um fast nichts zu kümmern!


Anmelden zum Antworten