Warum geht das denn nocht ?
-
#include <iostream> using namespace std; int counter; int schreiben; int mail; int main () { cout << "Wie lautet die Nachricht: " << endl; cin >> mail; cout << "Wie oft soll sie verschickt werden: " << endl; cin >> counter; while (counter > 0) { system("Verschicken.bat"); counter--; } cout << "Zähler ist: " << counter << endl; return 0; } int schreiben (string mail) { ofstream Output ("Verschicken.bat"); Output << "net send Lars " << mail.c_str(); }Warum bekomme ich diese Fehler, und könnt ihr mir helfen sie zu beseitigen ?
1.) error C2297: '<<' : Ungültig, da der rechte Operand vom Typ 'char [15]' ist
2.) 'initializing' : 'char [16]' kann nicht in 'int' konvertiert werden
3.) error C2079: 'Output' verwendet undefiniertes class 'basic_ofstream<char,struct std::char_traits<char> >'
4.) error C2373: 'schreiben' : Neudefinition; unterschiedliche Modifizierer
Bitte um hilfe !!
Gruß
Lars
-
du hast bei deiner Funktionsdeklaration die Parameterliste vergessen
das (was eine Variable ist)
int schreiben;zu
int schreiben (string mail);
-
Hi,
"schreiben" ist schon als int definiert, der selbe Name kann also nicht auch eine Funktion sein.
Gruß
-
Versuche auch globale Variablen zu vermeiden, das ist nicht sehr schön (und führt, wie du siehst, zu Fehlern).
-
Pellaeon schrieb:
du hast bei deiner Funktionsdeklaration die Parameterliste vergessen
das (was eine Variable ist)
int schreiben;zu
int schreiben (string mail);ok danke, aber was ist mit den anderen 3 Fehler, denn die bleiben immer noch da !
-
Du wendest c_str() auf ein int an, das kann nicht gehen. Das muss ein std::string sein! Außerdem liest du falsch ein (kein Syntaxfehler, aber ein logischer):
getline(cin, mail);
-
GPC schrieb:
Du wendest c_str() auf ein int an, das kann nicht gehen. Das muss ein std::string sein!
Die lokale Variable "mail" ist ja ein std::string, das müsste also gehen!?!
-
Ah stimmt, ich hab mich von den globalen Variablen verwirren lassen, ich sag's ja, das ist mist.
-
Wenn du
#include <fstream>noch einbindest und "schreiben" einen Rückgabewert liefert, müsste das Ding aber gehen. Zumindest die Syntax stimmt dann.
Gruß
-
error C4716: 'schreiben' : Muß einen Wert zurückgeben
dieser Fehler kommt noch !
-
Wenn du nix zurückgibst mach aus "int schreiben (hier blubba" "void schreiben (hier blubba".
MfG SideWinder
-
GuybrushThreepwood schrieb:
... und "schreiben" einen Rückgabewert liefert, müsste das Ding aber gehen...
int schreiben (...) { ... int i; ... return i; //! }