Problem bei variable in datei schreiben.
-
#include <iostream.h>
#include <fstream>
using namespace std;int main()
{
char Arbeiter,Uhrzeit;cout<< "Arbeitsoperator 1.0\n\n\n\n";
cout<< "Bitte geben sie ihren Namen ein: ";
cin>>Arbeiter;fstream f;
f.open("test.dat", ios::out);
f << Arbeiter;f.close();
}
Bei siesem Programm habe ich das Problem das in der datei test.dat nur der erste Buchstabe der variablen Arbeiter angegeben wird. Kann mir jemand helfen???
:schland: Deutschland wir Weltmeister!!!
:schland:
-
Du hast die variable ja als char deklariert. Das ist nur ein einzelner Buchstabe. Benutze anstatt char mal string (#include <string>), dann sollte es gehen.
-
Warum string in <string>? string ist AFAIK in iostream
-
Weil char Arbeiter, Uhrzeit nur für einen Buchstaben ist.
Entweder du machst string Arbeiter, Uhrzeit (+ #include <string>) oder du arbeitest mit char*.
-
<string> ist der header der c++-strings. Guck mal hier rein: http://www.cppreference.com/index.html
-
.................. schrieb:
string ist AFAIK in iostream
nein. in iostrream sind lediglich die deklarationen der standardstreamobjekte cout,cin,cerr,clog usw. enthalten.
-
wie kommt es dann das ich string nutzen kann?
-
includest du vielleicht einen standard-header in dem <string> included wird?
-
.................. schrieb:
wie kommt es dann das ich string nutzen kann?
weil es einer implementation freisteht, mehr namen zu deklararieren, als du explizit durch include verlangt hast (17.4.4.1/1). davon gebrauch zu machen, führt allerdings zu nicht-portablen programmen.
-
Danke für eure Hilfe. Das Programm schreib jetzt den Namen des Arbeiters in die Datei. Doch danach soll noch angegen werden um wieviel Uhr das war und was da gemacht wurde. Doch das Programm überschreibt alle Zeichen in der datei tse.dat wieder.
-
Kurth2 schrieb:
Danke für eure Hilfe. Das Programm schreib jetzt den Namen des Arbeiters in die Datei. Doch danach soll noch angegen werden um wieviel Uhr das war und was da gemacht wurde. Doch das Programm überschreibt alle Zeichen in der datei tse.dat wieder.
Bösses Programm! Pfui!
-
Kannst du mir auch einen richtige Antwort geben????

-
Kurth2 schrieb:
... Doch das Programm überschreibt alle Zeichen in der datei tse.dat wieder.
Gib einfach als Flag beim Öffnen
ios::out | ios::appan.
-
Erstmal danke für deinen Antwort. Doch wie kann ich dem Programm sagen dass das nächste was in die Datei geschrieben werden soll in die nächste Zeile schreibt?
-
Neue Zeile wird mit dem Zeichen \n angezeigt.
Also kannst du an dein String das Zeichen anfügen.