(C++) Problem mit puts



  • Hallo!

    Kann mir einer sagen wie ich diesen Quellcode verändern mus um die Fehler zu beheben.

    #include <iostream>
    #include <fstream>
    #include <string>
    #include "string.h"
    using namespace std;
    
    int main()
    {
        string Bezeichnung[100];
        string Preis[100];
        string P[100];
        string Rueckgabe[100];
        int aus,i;
    
        PLU_Nummer PLU;
        FILE *pf;
        pf = fopen("D:/Schule/Test/PLU.txt","w+");
        for(i=0;i<=99;i++)
        {
        P[i]=i;
        Rueckgabe[i]="NUll";
        PLU.setPlu( P[i],i);
        std::string p= P[i];
        puts (p);
        PLU.setBez (0,i);
        std::string r1 = Rueckgabe[i];
        puts (r1);
        PLU.setPreis (0,i);
        std::string r2 = Rueckgabe[i];
        puts (r2);
        }
           .
           .
           .
    

    Die Fehlermeldungen sind:

    *\main.cpp(25) : error C2664: 'puts' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char *' nicht moeglich
            Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
    *\main.cpp(28) : error C2664: 'puts' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char *' nicht moeglich
            Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
    *\main.cpp(31) : error C2664: 'puts' : Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char *' nicht moeglich
            Kein benutzerdefinierter Konvertierungsoperator verfuegbar, der diese Konvertierung durchfuehren kann, oder der Operator kann nicht aufgerufen werden
    

    Ich würde mich über HIlfe freuen.

    [ Dieser Beitrag wurde am 29.12.2002 um 12:55 Uhr von blind editiert. ]



  • Hallo ....

    Du mischst C++ mit C -> nicht gut. Ich schätze mal, Du bist noch Einsteiger...

    Wie auch immer - wenn Du puts() in diesem Kontext verwenden willst, dann mache das so:

    std::string bla = "schnutzelfutz";
    puts(bla.c_str());
    

    Aber gewöhne Dich nicht erst daran - es gibt in der Sprache C++ bessere Möglichkeiten, Strings auszugeben (Stichwort: cout).



  • Konvertierung des Parameters 1 von 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'const char *' nicht moeglich

    mhm...

    Kuerzen wir mal damit es lesbar wird:
    Konvertierung des Parameters 1 von 'class std::basic_string' in 'const char *' nicht moeglich

    AH

    puts verlangt einen const char* und du gibst ihm einen basic_string - das kann ja nicht funktionieren!

    ein blick in die Doku wuerde dir da auch helfen!!

    std::string ist C++ - deshalb verschiebe ich dich jetzt auch dorthin!


Anmelden zum Antworten