Brauche Hilfe beim Speichern einer Datei in C++

spacy2004

Grünschnabel
Hallo,

ich brauche mal dringend eure Hilfe,
ich muss eine Datei mit Inhalt abspeichern,
und habe dies seid längere Zeit nicht mehr gemacht.
Könntet Ihr mir mal helfen?
Wäre super nett.

Hier mein Lösungsansatz:

Code:
64: void cd::eingabe()
65: {clrscr();
66: int a,b;
67: double D;
68: string T, I, G;
69: int C;
70: cin >> b;
71: cout << endl << endl << endl << endl << "Für wieviel CD's möchten Sie Ihre Daten 
	 eingeben? [max. 100.000 CD's]: ";
72: FILE *datei;
73: datei=fopen("c:\\datei.txt","a+"); 
74: if (datei == NULL) 
75:	{ 
76:	 cout << "Fehler beim Öffnen der Datei"; 
77:	 getch(); 
78:	 menu(); 
79:	} 
80: else 
81:	{ 
82:	 fwrite(&s1[b],sizeof(s1[b]),1,datei); 
83:	 cd *cd1[100000];
84:	 for(a=0;a<b;a++)
85:	 {clrscr();
86:	 cd1[b] = new cd;
87:	 cout << "Dateneingabe für CD " << a+1 << endl;
88:	 cout << "Erscheinugsjahr: "; cin >> D;
89:	 cout << "CD-Name		: "; cin >> T;
90:	 cout << "Interpret	 : "; cin >> I;
91:	 cout << "Genre		 : "; cin >> G;
92:	 }
93: } 
94: fclose(datei); 
95: menu();
96: }

soweit bin ich gekommen.
Ich bekomme immer folgenden Hinweis:
Fehler E2451 82: Undefiniertes Symbol "s1"
Fehler E2109 82: Unzulässiger Typ


Könntet Ihr mir bitte helfen?
Ich muss dieses Teilprogramm,
bis 10.10.2004 (Abends)
Abgegeben haben.


Danke, chris.
 
sl ist nicht deklariert oder definiert, deshalb bekommst du die Fehlermeldungen.
In sl muß natürlich was drin stehen, sonst legt er dir nur eine Datei an, ohne Inhalt,
aber ich hoffe das versteht sich von selbst...

Greets,
BadMourning
 
ich denke mal da kann ich mich wohl dem vorredner anschliessen, aber mal so ne frage wofuer mischst du c und c++?
 
Hi,

ja,
ich habe die Datei schon deklariert.
Wenn ich sie Deklariere kommt folgende Meldung:
Fehler E2062 82: Unzulässiger Indirektionsoperator
Fehler E2062 82: Unzulässiger Indirektionsoperator
Fehler E2109 82: Unzulässiger Typ


cu, chris
 
Irgendwie blicke ich nicht ganz was du da machen willst.

normalerweise sieht das ungefähr so aus:

Code:
char *s1;

s1 = new char[ 256 ];

strcpy( s1, "das soll in die Datei geschrieben werden" );

...

fwrite( s1, strlen(s1) + 1, 1, datei );

...

Ich weiß wirklich nicht, warum du &sl[b] in die Datei schreiben
willst...

Greets,
BadMourning
 
Hi,

hinter dem "wieviele cd's möchten sie ..." sollte noch kommen, "cin >> b;
daher erklärt sich das b
das ist der zähler für die schleife und den speicherwert.

ich kann dir hier mal die aufgabenstellung dieses projektes mit hinzufügen,
dies ist ein projekt im ramen einer studien arbeit.
habe blos vergessen wie ich auf dieser basis, wie ich sie vorgegeben habe,
den speichervorgang in eine externe datei tätigen kann.

Aufgabenstellung:

Code:
 Erstellen Sie ein Programm zur Verwaltung von Musik-cd's!
Die CD's sollen dabei in Form von Objekten erfasst werden!
Entwerfen Sie die Klasse(n) und programmieren sie eine 
Routine, um eine vom User definierte Anzahl 
von CD' zu erfassen (dynamische Instanzierung)!
Erstellen Sie die Möglichkeit 
die Daten in einer Datei zu spreichern!

Ok, muss das bis heute abend 22uhr per email versand haben.
danke, chris.
 
Ich würd ein ofstream nutzen:
Code:
#include <fstream>
using namespace std;
...
ofstream FileToWrite;
//Binär öffnen zum schreiben
FileToWrite.open("Hier deine Datei", ios_base::out | ios_base::binary); 
//ASCII öffnen zum schreiben einfach ios_base::binary weglassen
for(Alle Instanzen abhandeln)
{
  FileToWrite.write( reinterpret_cast<char*>(Pointer of dein CD-OBject), sizeof(cd));
}

Ich habs nicht getestet, aber so müsste es gehen
 
hi,

es soll in der art gemacht werden wie ich sie verwendet habe.
wäre supi,
wenn ihr es so hinbekommt, das meins nur bearbeitet wird, so dass es funkzioniert.


viel dank, chris.
 
Zurück