(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 moeglichAH
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!