dateiarbeit - loeschen ...

Hallo,

das liegt daran, dass bei

struct eintraege
{
}daten;

daten nichts anderes ist als eine Variable vom typ eintraege
( also ausgeschrieben: eintraege daten; )
und somit ist daten kein Typ und kann auch nicht als einer verwendet werden :)
 
wie schaffe ich es das ich einen text(string) mit zeilenumbrüchen ein eine variable meines struckts speichern kann ?

im moment siehts so aus - der text wird direkt in die datei geschrieben
Code:
do
	{
		ein="";
			do
			{

			zeichen = getch();

			
			switch(zeichen)
			{
			case 13: fl << ein << endl;break;
			
			case 8: if(strlen(ein.c_str())>0)
					{
				cout << "\b \b";
				ein.erase(strlen(ein.c_str()-1),1);
					}
				break;
			
			case 27: fl << ein << endl;break;

			default: cout << zeichen;
					 ein.append(1,zeichen);
			}

		}while(zeichen!=13&&zeichen!=27);
		cout << endl;
		cout << ". ";
	}while(zeichen!=27);
	fl.close();
ich möchte ihn aber (genauso wie daten.datum) als datensatz haben und genauso speichern

Code:
struct eintraege
{
	char datum[10];
	string ein;
}daten;

ofl.write();

danke ven
 
moin


Hmm, wenn ich das richtig verstanden habe, ist das nicht so leicht.

Das Problem ist, dass immer nur bis zu bestimmten Zeiche, z.B. '\0', '\n', '\b'...., eingelesen wird. Also wirst du Zeichen für Zeichen in die Variable schieben müssen bis alles drin ist was du willst.
Bei auslesen hast du dann aber wieder das selbe Problem, meistens wird dann wieder nur bis zu einem der oben angegeben Zeichen ausgegeben.


mfg
umbrasaxum
 
ja gut aber wie mach ich das ...
für das datum (char) hab ich das hinbekommen
Code:
ofl.open(name, ios::out|ios::ate);
		cin >> daten.datum;
	ofl.write((char *)&daten.datum, sizeof(eintraege));
	ofl.close();

aber wie mach ich das für einen string ?
vom logischen ist mir die sache klar mit abbruchzeichen und so ... aber ich weiß nich recht wie ich das in cpp umsetzten soll
 
moin


In etwa so:
Code:
CString string;

char zeichen;

while((zeichen = file.get()) != '.')
     string += zeichen;

Nun liesst er aus file solange ein bis ein Punkt kommt.


mfg
umbrasaxum
 
Zurück