C++ "Initialisierung von 'in' durch 'case'-Marke übersprungen"

nabend zusammen,
naja ich bins wieder mal ^^
naja ich habe ein problem, beim Compilieren zeigt das unten ausgeführte Programm immer die selben Fehler an: (Ohne die Cases funtzt das Prog, liest Dateien Binär ein und aus!) Wie bekomm ich den Fehler weg oder kann ihn umgehen? Also das "grundgerüst sollte so bleiben, da es ein Schulprojekt ist :D
Code:
--------------------Konfiguration: Datenbank - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
D:\Schule\C++\Lol\Datenbank\main.cpp(150) : error C2360: Initialisierung von 'in' durch 'case'-Marke übersprungen
        D:\Schule\C++\Lol\Datenbank\main.cpp(136) : Siehe Deklaration von 'in'
D:\Schule\C++\Lol\Datenbank\main.cpp(154) : error C2360: Initialisierung von 'in' durch 'case'-Marke übersprungen
        D:\Schule\C++\Lol\Datenbank\main.cpp(136) : Siehe Deklaration von 'in'
D:\Schule\C++\Lol\Datenbank\main.cpp(158) : error C2361: Initialisierung von 'in' durch 'default'-Marke übersprungen
        D:\Schule\C++\Lol\Datenbank\main.cpp(136) : Siehe Deklaration von 'in'
Fehler beim Ausführen von cl.exe.

Datenbank.exe - 3 Fehler, 0 Warnung(en)
Code:
// Datenbankverwaltungprogramm "Admin-Tool"
// (c) 17-08-2006 by Marco Matthias Franke

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>

#define anzahl 100

using namespace std;

struct artikel
{
	char name[20];
	char nummer[20];
	float preis;
};

struct rechnung
{
	char vorname[20];
	char nachname[20];
	char estrasse[20];
	int epostleitzahl;
	char stadt[20];
	int kundennummer;
	int hnummer;
};

void main()
{
	char auswahl=' ', adata=' ',rdata=' ';
	int x=1,i,janein=0,zartikel,zkunden;	
	float endpreis=0;
	string name,nummer;
	artikel daten[anzahl], daten2[anzahl];
	rechnung rdaten[anzahl], rdaten2[anzahl];

	system("cls");

	SYSTEMTIME tm;
	GetLocalTime(&tm);

	do
	{
		system("color F0");
		system("cls");

		fstream outrdata("daten.bin", ios::out);

		cout<<"\n\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB";
		cout<<"\n\t\t\xBA "<<tm.wHour<<":"<<tm.wMinute<<" Uhr \t\t\t  "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<" \xBA";
		cout<<"\n\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC"<<endl;
		cout<<"\n\t <1>  Artikel eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <2>  Kundendaten eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <3>  Artikel ansehen";
		cout<<"\n\t <4>  Kundendaten ansehen";
		cout<<"\n\n\t<ESC> Programm beenden";

		cout<<"\n\n\tWas m\x94""chten Sie tun? \n\t\xAF "<<flush;
		auswahl=getche();
		auswahl=auswahl+'\0';

		switch(auswahl)
		{
			case '1':	system("cls");
						cout<<"\n\t <1>  Artikel eingeben"<<endl;
						i=0;
						if(auswahl=='1')
						{
							fstream outadata("artikel.bin",ios::out);
							while(i<anzahl)
								{
									cout<<"\n\tGeben Sie den "<<i+1<<". Artikel ein \n\t\xAF ";
									cin>>daten[i].name;
									cout<<"\n\tWelche Nummer hat der Artikel \""<<daten[i].name<<"\"? \n\t\xAF ";
									cin>>daten[i].nummer;
									cout<<"\n\tWie viel kostet der Artikel \""<<daten[i].name<<"\" (in Euro)? \n\t\xAF ";
									cin>>daten[i].preis;
									outadata.write((const char*)&daten[i],sizeof(daten[i]));
									cout<<"\n\tWollen Sie noch einen Artikel einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
									cin>>janein;
									if(janein==1) 
									{
										i++;
										zartikel=i;
									}
									else
									{
										outadata.close();
										break;
									}
								}
						}
						break;

			case '2':	system("cls");
						cout<<"\n\t <3>  Kundendaten eingeben"<<endl<<endl;
						i=0;
						while(i<anzahl)
						{
							cout<<"\n\tWie ist der Kundenvorname ? \n\t\xAF ";
							cin>>rdaten[i].vorname;
							cout<<"\n\tWie ist der Kundennachname ? \n\t\xAF ";
							cin>>rdaten[i].nachname;
							cout<<"\n\tWelche Kundennummer hat der Kunde? \n\t\xAF ";
							cin>>rdaten[i].kundennummer;
							cout<<"\n\tAuf welcher Straße wohnt der Kunde \n\t\xAF ";
							cin>>rdaten[i].estrasse;
							cout<<"\n\tWie ist die Hausnummer? \n\t\xAF ";
							cin>>rdaten[i].hnummer;
							cout<<"\n\tIn welcher Stadt wohnt der Empf\x84nger? \n\t\xAF ";
							cin>>rdaten[i].stadt;
							cout<<"\n\tWelche Postleitzahl besitzt "<<rdaten[i].stadt<<"? \n\t\xAF ";
							cin>>rdaten[i].epostleitzahl;
							outrdata.write((const char*)&rdaten[i],sizeof(rdaten[i]));
							cout<<"\n\tWollen Sie noch einen Kunden einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
							cin>>janein;
							if(janein==1)
							{
								i++;
								zkunden=i;
							}
							else 
							{
								outrdata.close();
								break;
							}
						}
						break;

			case '3':	system("cls");
						fstream in("artikel.bin",ios::in);
						cout<<"\n\t <3> Artikel Ansehen"<<endl<<"\t"<<endl;
						while(in.read((char*)&daten2,sizeof(daten2)))
						{
							for(i=0;i<zartikel;i++)
							{
								cout<<"\n\tArtikelname: \t\xAF "<<daten2[i].name;
								cout<<"\n\tArtikelnummer: \t\xAF "<<daten2[i].nummer;
								cout<<"\n\tArtikelpreis: \t\xAF "<<daten2[i].preis;
							}
						}
							in.close();
						break;	

			case '4':   system("cls");
						cout<<"\n\t <4> Kundendaten Ansehen"<<endl<<endl;
						break;					

			case '\x1B':cout<<"\n\tDas Programm wird beendet..."<<endl<<endl;
						exit(0);
						break;

			default:	cout<<"\n\tEs wurde eine falsche Eingabe get\x84tigt!"<<endl<<endl;
						break;
			}
	}
	while(x!=0);
}
 
So funktionierts... 8)

Du darfst in keinem case eine Variable initialisieren !!!

Code:
// Datenbankverwaltungprogramm "Admin-Tool"
// (c) 17-08-2006 by Marco Matthias Franke

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>

#define anzahl 100

using namespace std;

struct artikel
{
	char name[20];
	char nummer[20];
	float preis;
};

struct rechnung
{
	char vorname[20];
	char nachname[20];
	char estrasse[20];
	int epostleitzahl;
	char stadt[20];
	int kundennummer;
	int hnummer;
};

void main()
{
	char auswahl=' ', adata=' ',rdata=' ';
	int x=1,i,janein=0,zartikel,zkunden;	
	float endpreis=0;
	string name,nummer;
	artikel daten[anzahl], daten2[anzahl];
	rechnung rdaten[anzahl], rdaten2[anzahl];

	system("cls");

	SYSTEMTIME tm;
	GetLocalTime(&tm);

	do
	{
		system("color F0");
		system("cls");

		fstream outrdata("daten.bin", ios::out);

		cout<<"\n\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB";
		cout<<"\n\t\t\xBA "<<tm.wHour<<":"<<tm.wMinute<<" Uhr \t\t\t  "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<" \xBA";
		cout<<"\n\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC"<<endl;
		cout<<"\n\t <1>  Artikel eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <2>  Kundendaten eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <3>  Artikel ansehen";
		cout<<"\n\t <4>  Kundendaten ansehen";
		cout<<"\n\n\t<ESC> Programm beenden";

		cout<<"\n\n\tWas m\x94""chten Sie tun? \n\t\xAF "<<flush;
		auswahl=getche();
		auswahl=auswahl+'\0';
		fstream in("artikel.bin",ios::in);
		switch(auswahl)
		{
			case '1':	system("cls");
						cout<<"\n\t <1>  Artikel eingeben"<<endl;
						i=0;
						if(auswahl=='1')
						{
							fstream outadata("artikel.bin",ios::out);
							while(i<anzahl)
								{
									cout<<"\n\tGeben Sie den "<<i+1<<". Artikel ein \n\t\xAF ";
									cin>>daten[i].name;
									cout<<"\n\tWelche Nummer hat der Artikel \""<<daten[i].name<<"\"? \n\t\xAF ";
									cin>>daten[i].nummer;
									cout<<"\n\tWie viel kostet der Artikel \""<<daten[i].name<<"\" (in Euro)? \n\t\xAF ";
									cin>>daten[i].preis;
									outadata.write((const char*)&daten[i],sizeof(daten[i]));
									cout<<"\n\tWollen Sie noch einen Artikel einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
									cin>>janein;
									if(janein==1) 
									{
										i++;
										zartikel=i;
									}
									else
									{
										outadata.close();
										break;
									}
								}
						}
						break;

			case '2':	system("cls");
						cout<<"\n\t <3>  Kundendaten eingeben"<<endl<<endl;
						i=0;
						while(i<anzahl)
						{
							cout<<"\n\tWie ist der Kundenvorname ? \n\t\xAF ";
							cin>>rdaten[i].vorname;
							cout<<"\n\tWie ist der Kundennachname ? \n\t\xAF ";
							cin>>rdaten[i].nachname;
							cout<<"\n\tWelche Kundennummer hat der Kunde? \n\t\xAF ";
							cin>>rdaten[i].kundennummer;
							cout<<"\n\tAuf welcher Straße wohnt der Kunde \n\t\xAF ";
							cin>>rdaten[i].estrasse;
							cout<<"\n\tWie ist die Hausnummer? \n\t\xAF ";
							cin>>rdaten[i].hnummer;
							cout<<"\n\tIn welcher Stadt wohnt der Empf\x84nger? \n\t\xAF ";
							cin>>rdaten[i].stadt;
							cout<<"\n\tWelche Postleitzahl besitzt "<<rdaten[i].stadt<<"? \n\t\xAF ";
							cin>>rdaten[i].epostleitzahl;
							outrdata.write((const char*)&rdaten[i],sizeof(rdaten[i]));
							cout<<"\n\tWollen Sie noch einen Kunden einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
							cin>>janein;
							if(janein==1)
							{
								i++;
								zkunden=i;
							}
							else 
							{
								outrdata.close();
								break;
							}
						}
						break;

			case '3':	system("cls");
						
						cout<<"\n\t <3> Artikel Ansehen"<<endl<<"\t"<<endl;
						while(in.read((char*)&daten2,sizeof(daten2)))
						{
							for(i=0;i<zartikel;i++)
							{
								cout<<"\n\tArtikelname: \t\xAF "<<daten2[i].name;
								cout<<"\n\tArtikelnummer: \t\xAF "<<daten2[i].nummer;
								cout<<"\n\tArtikelpreis: \t\xAF "<<daten2[i].preis;
							}
						}
							in.close();
						break;	
			case '4':   system("cls");
						cout<<"\n\t <4> Kundendaten Ansehen"<<endl<<endl;
						break;					

			case '\x1B':cout<<"\n\tDas Programm wird beendet..."<<endl<<endl;
						exit(0);
						break;

			default:	cout<<"\n\tEs wurde eine falsche Eingabe get\x84tigt!"<<endl<<endl;
						break;
			
			}
	}
	while(x!=0);
}
 
hi
also ich bin selbst ein neueinsteiger in c++ aber ich glaub ich hab die probs gefunden!!!

1. die main funktion muss immer(!!!!) einen int zurückgeben und kann niemals void sein...

2. in case 3: hast du fstream in; nicht initialiesiert dass muss aber unter umständen ausserhalb des switch case liegen diese initialisation von fstream in;

3. musst du in case 3: in.open nehmen da du eine methode von fstream aufrufst.

also mein überarbeiteter quellcode lässt sich bei mir compilieren:
Code:
// Datenbankverwaltungprogramm "Admin-Tool"
// (c) 17-08-2006 by Marco Matthias Franke

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>

#define anzahl 100

using namespace std;

struct artikel
{
	char name[20];
	char nummer[20];
	float preis;
};

struct rechnung
{
	char vorname[20];
	char nachname[20];
	char estrasse[20];
	int epostleitzahl;
	char stadt[20];
	int kundennummer;
	int hnummer;
};

int main()
{
	char auswahl=' ', adata=' ',rdata=' ';
	int x=1,i,janein=0,zartikel,zkunden;	
	float endpreis=0;
	string name,nummer;
	artikel daten[anzahl], daten2[anzahl];
	rechnung rdaten[anzahl], rdaten2[anzahl];

	system("cls");

	SYSTEMTIME tm;
	GetLocalTime(&tm);

	do
	{
		system("color F0");
		system("cls");

		fstream outrdata("daten.bin", ios::out);

		cout<<"\n\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB";
		cout<<"\n\t\t\xBA "<<tm.wHour<<":"<<tm.wMinute<<" Uhr \t\t\t  "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<" \xBA";
		cout<<"\n\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC"<<endl;
		cout<<"\n\t <1>  Artikel eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <2>  Kundendaten eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <3>  Artikel ansehen";
		cout<<"\n\t <4>  Kundendaten ansehen";
		cout<<"\n\n\t<ESC> Programm beenden";

		cout<<"\n\n\tWas m\x94""chten Sie tun? \n\t\xAF "<<flush;
		auswahl=getche();
		auswahl=auswahl+'\0';
        
        fstream in;
        
		switch(auswahl)
		{
			case '1':	system("cls");
						cout<<"\n\t <1>  Artikel eingeben"<<endl;
						i=0;
						if(auswahl=='1')
						{
							fstream outadata("artikel.bin",ios::out);
							while(i<anzahl)
								{
									cout<<"\n\tGeben Sie den "<<i+1<<". Artikel ein \n\t\xAF ";
									cin>>daten[i].name;
									cout<<"\n\tWelche Nummer hat der Artikel \""<<daten[i].name<<"\"? \n\t\xAF ";
									cin>>daten[i].nummer;
									cout<<"\n\tWie viel kostet der Artikel \""<<daten[i].name<<"\" (in Euro)? \n\t\xAF ";
									cin>>daten[i].preis;
									outadata.write((const char*)&daten[i],sizeof(daten[i]));
									cout<<"\n\tWollen Sie noch einen Artikel einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
									cin>>janein;
									if(janein==1) 
									{
										i++;
										zartikel=i;
									}
									else
									{
										outadata.close();
										break;
									}
								}
						}
						break;

			case '2':	system("cls");
						cout<<"\n\t <3>  Kundendaten eingeben"<<endl<<endl;
						i=0;
						while(i<anzahl)
						{
							cout<<"\n\tWie ist der Kundenvorname ? \n\t\xAF ";
							cin>>rdaten[i].vorname;
							cout<<"\n\tWie ist der Kundennachname ? \n\t\xAF ";
							cin>>rdaten[i].nachname;
							cout<<"\n\tWelche Kundennummer hat der Kunde? \n\t\xAF ";
							cin>>rdaten[i].kundennummer;
							cout<<"\n\tAuf welcher Straße wohnt der Kunde \n\t\xAF ";
							cin>>rdaten[i].estrasse;
							cout<<"\n\tWie ist die Hausnummer? \n\t\xAF ";
							cin>>rdaten[i].hnummer;
							cout<<"\n\tIn welcher Stadt wohnt der Empf\x84nger? \n\t\xAF ";
							cin>>rdaten[i].stadt;
							cout<<"\n\tWelche Postleitzahl besitzt "<<rdaten[i].stadt<<"? \n\t\xAF ";
							cin>>rdaten[i].epostleitzahl;
							outrdata.write((const char*)&rdaten[i],sizeof(rdaten[i]));
							cout<<"\n\tWollen Sie noch einen Kunden einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
							cin>>janein;
							if(janein==1)
							{
								i++;
								zkunden=i;
							}
							else 
							{
								outrdata.close();
								break;
							}
						}
						break;

			case '3':	system("cls");
			          
						in.open("artikel.bin",ios::in);
						cout<<"\n\t <3> Artikel Ansehen"<<endl<<"\t"<<endl;
						
                        while(in.read((char*)&daten2,sizeof(daten2)))
						{
							for(i=0;i<zartikel;i++)
							{
								cout<<"\n\tArtikelname: \t\xAF "<<daten2[i].name;
								cout<<"\n\tArtikelnummer: \t\xAF "<<daten2[i].nummer;
								cout<<"\n\tArtikelpreis: \t\xAF "<<daten2[i].preis;
							}
						}
						in.close();
						break;	

			case '4':   system("cls");
						cout<<"\n\t <4> Kundendaten Ansehen"<<endl<<endl;
						break;					

			case '\x1B':cout<<"\n\tDas Programm wird beendet..."<<endl<<endl;
						exit(0);
						break;

			default:	cout<<"\n\tEs wurde eine falsche Eingabe get\x84tigt!"<<endl<<endl;
						break;
			}
	}
	while(x!=0);
	return 0;
}

mfg GONI
 
@goni: Habe deinen Code kompiliert jedoch legt er nur Dateien, er schreibt in keine hinein und liest auch nix aus... habs mit dem Visual Studio C++ compiliert. Also das compilen ist kein Problem. Jedoch schreibt er nix in die Dateien hinein und kann sie auch nicht auslesen.

I-wo muss ich dochn denkfehler haben, oder? o.O naja unser Lehrer hat uns das mit den Binätdateien als Blatt "hingeklatscht" und hat uns net mal erklärt wie es in einer Switch - Case - Anweisung eingebunden werden muss

MfG
Abstauber
 
Code:
switch(...) {
...
case '3': {
            fstream in("artikel.bin",ios::in);
            ...
          }
...
}
Wer leere Klammern nicht mag, kann auch do{...}while(0); schreiben...


Code:
while(in.read((char*)&daten2,sizeof(daten2)))
Du willst hier also 100 Datensätze im Zeiger daten2 speichern? X(


"jedoch legt er nur Dateien, er schreibt in keine hinein und liest auch nix aus"
Du hast also das Programm gestartet, einen Artikel eingegeben und beendet -> Datei leer
Und du hast eine (alte?) Datei genommen, Programm gestartet, Artikel anzeigen -> nichts
 
hi habs nun geschafft und kann daten auslesen wie gewünscht.
Code:
// Datenbankverwaltungprogramm "Admin-Tool"
// (c) 17-08-2006 by Marco Matthias Franke

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>

#define anzahl 100

using namespace std;

struct artikel
{
	char name[20];
	char nummer[20];
	float preis;
};

struct rechnung
{
	char vorname[20];
	char nachname[20];
	char estrasse[20];
	int epostleitzahl;
	char stadt[20];
	int kundennummer;
	int hnummer;
};

int main()
{
	char auswahl=' ', adata=' ',rdata=' ';
	int x=1,i,janein=0,zartikel,zkunden;	
	float endpreis=0;
	string name,nummer;
	artikel daten[anzahl], daten2[anzahl];
	rechnung rdaten[anzahl], rdaten2[anzahl];
    
	system("cls");

	SYSTEMTIME tm;
	GetLocalTime(&tm);

	do
	{
		system("color F0");
		system("cls");

		fstream outrdata("daten.txt", ios::out);

		cout<<"\n\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB";
		cout<<"\n\t\t\xBA "<<tm.wHour<<":"<<tm.wMinute<<" Uhr \t\t\t  "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<" \xBA";
		cout<<"\n\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC"<<endl;
		cout<<"\n\t <1>  Artikel eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <2>  Kundendaten eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <3>  Artikel ansehen";
		cout<<"\n\t <4>  Kundendaten ansehen";
		cout<<"\n\n\t<ESC> Programm beenden";

		cout<<"\n\n\tWas m\x94""chten Sie tun? \n\t\xAF "<<flush;
		auswahl=getche();
		auswahl=auswahl+'\0';
        
        fstream in;
        fstream outadata;
        string s;
        
		switch(auswahl)
		{
			case '1':	system("cls");
						cout<<"\n\t <1>  Artikel eingeben"<<endl;
						i=0;
						if(auswahl=='1')
						{
							outadata.open("artikel.txt",ios::out);
							while(i<anzahl)
								{
									cout<<"\n\tGeben Sie den "<<i+1<<". Artikel ein \n\t\xAF ";
									cin>>daten[i].name;
									cout<<"\n\tWelche Nummer hat der Artikel \""<<daten[i].name<<"\"? \n\t\xAF ";
									cin>>daten[i].nummer;
									cout<<"\n\tWie viel kostet der Artikel \""<<daten[i].name<<"\" (in Euro)? \n\t\xAF ";
									cin>>daten[i].preis;
									outadata.write((const char*)&daten[i], sizeof(daten[i]));
									cout<<"\n\tWollen Sie noch einen Artikel einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
									cin>>janein;
									if(janein==1) 
									{
										i++;
										zartikel=i;
									}
									else
									{
										outadata.close();
										break;
									}
								}
						}
						outadata.close();
						break;

			case '2':	system("cls");
						cout<<"\n\t <3>  Kundendaten eingeben"<<endl<<endl;
						i=0;
						while(i<anzahl)
						{
							cout<<"\n\tWie ist der Kundenvorname ? \n\t\xAF ";
							cin>>rdaten[i].vorname;
							cout<<"\n\tWie ist der Kundennachname ? \n\t\xAF ";
							cin>>rdaten[i].nachname;
							cout<<"\n\tWelche Kundennummer hat der Kunde? \n\t\xAF ";
							cin>>rdaten[i].kundennummer;
							cout<<"\n\tAuf welcher Straße wohnt der Kunde \n\t\xAF ";
							cin>>rdaten[i].estrasse;
							cout<<"\n\tWie ist die Hausnummer? \n\t\xAF ";
							cin>>rdaten[i].hnummer;
							cout<<"\n\tIn welcher Stadt wohnt der Empf\x84nger? \n\t\xAF ";
							cin>>rdaten[i].stadt;
							cout<<"\n\tWelche Postleitzahl besitzt "<<rdaten[i].stadt<<"? \n\t\xAF ";
							cin>>rdaten[i].epostleitzahl;
							outrdata.write((const char*)&rdaten[i],sizeof(rdaten[i]));
							cout<<"\n\tWollen Sie noch einen Kunden einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
							cin>>janein;
							if(janein==1)
							{
								i++;
								zkunden=i;
							}
							else 
							{
								outrdata.close();
								break;
							}
						}
						break;

			case '3':	system("cls");
			          
						in.open("artikel.txt",ios::in);
						cout<<"\n\t <3> Artikel Ansehen"<<endl<<"\t"<<endl;
					 while(true)//in.read((char*)&daten2,sizeof(daten2)))
						{
							for(i=0;i<100;i++)
							{   
                                in.read((char*)&daten2[i],sizeof(daten2[i]));
								cout<<"\n\tArtikelname: \t\xAF "<<daten2[i].name;
								cout<<"\n\tArtikelnummer: \t\xAF "<<daten2[i].nummer;
								cout<<"\n\tArtikelpreis: \t\xAF "<<daten2[i].preis;
							}
							break;
						}
						cin.get();
						in.close();
						break;	

			case '4':   system("cls");
						cout<<"\n\t <4> Kundendaten Ansehen"<<endl<<endl;
						break;					

			case '\x1B':cout<<"\n\tDas Programm wird beendet..."<<endl<<endl;
						exit(0);
						break;

			default:	cout<<"\n\tEs wurde eine falsche Eingabe get\x84tigt!"<<endl<<endl;
						break;
			}
	}
	while(x!=0);
	return 0;
}

im case 3 war in der while schleife der fehler!!! eigentlich ist das while nun unnötig aber ich hab es einfach mal gelassen...
hoffe mal dass es so nun richtig is.
mfg Goni
 
Jo Dank dir Funktioniert, dank dir :)

Hier der, noch unfertige aber funktionierende, Quellcode:
Code:
// Datenbankverwaltungprogramm "Admin-Tool"
// (c) 17-08-2006 by Marco Matthias Franke

#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include <fstream>
#include <iomanip>

#define anzahl 100

using namespace std;

struct artikel
{
	char name[20];
	char nummer[20];
	float preis;
};

struct rechnung
{
	char vorname[20];
	char nachname[20];
	char estrasse[20];
	int epostleitzahl;
	char stadt[20];
	int kundennummer;
	int hnummer;
};

int main()
{
	char auswahl=' ';
	int x=1,i,janein=0,zartikel=0,zkunden=0;	
	artikel daten[anzahl], daten2[anzahl];
	rechnung rdaten[anzahl], rdaten2[anzahl];

	SYSTEMTIME tm;
	GetLocalTime(&tm);

	do
	{
		system("cls");
		cout<<"\n\t\t\xC9\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBB";
		cout<<"\n\t\t\xBA "<<tm.wHour<<":"<<tm.wMinute<<" Uhr \t\t\t  "<<tm.wDay<<"."<<tm.wMonth<<"."<<tm.wYear<<" \xBA";
		cout<<"\n\t\t\xC8\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xCD\xBC"<<endl;
		// Datenbank-Status
		cout<<"\n\tEingelesene Artikel: "<<zartikel<<" Artikel\tEingelesene Kunden: "<<zkunden<<" Kunden";
		ifstream in1("artikel.bin");
		in1.seekg(0,ios::end);
		streampos sp=in1.tellg();
		ifstream in2("kunden.bin");
		in2.seekg(0,ios::end);
		streampos sp1=in2.tellg();
		cout<<"\n\tGr\x94""sse Artikel: "<<setw(7)<<sp<<" Bytes\tGr\x94""sse Kunden: "<<setw(6)<<sp1<<" Bytes";
		cout<<"\n\n\t <1>  Artikel eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <2>  Kundendaten eingeben (max. "<<anzahl<<")";
		cout<<"\n\t <3>  Artikel ansehen";
		cout<<"\n\t <4>  Kundendaten ansehen";
		cout<<"\n\n\t<ESC> Programm beenden";
		cout<<"\n\n\tWas m\x94""chten Sie tun? \n\t\xAF "<<flush;
		auswahl=getche();
		auswahl=auswahl+'\0';
        
        fstream in;
        
		switch(auswahl)
		{
			case '1':	{
							system("cls");
							cout<<"\n\t <1>  Artikel eingeben"<<endl;
							i=0;
							fstream outadata("artikel.bin",ios::out);
							while(i<anzahl)
							{
								cout<<"\n\tGeben Sie den "<<i+1<<". Artikel ein \n\t\xAF ";
								cin>>daten[i].name;
								cout<<"\n\tWelche Nummer hat der Artikel \""<<daten[i].name<<"\"? \n\t\xAF ";
								cin>>daten[i].nummer;
								cout<<"\n\tWie viel kostet der Artikel \""<<daten[i].name<<"\" (in Euro)? \n\t\xAF ";
								cin>>daten[i].preis;
								outadata.write((const char*)&daten[i],sizeof(daten[i]));
								cout<<"\n\tWollen Sie noch einen Artikel einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
								cin>>janein;
								if(janein==1) 
								{
									i++;
								}
								else
								{
									zartikel=i+1;
									outadata.close();
									break;
								}
							}
							break;
						}

			case '2':	{
							system("cls");
							cout<<"\n\t <2>  Kundendaten eingeben"<<endl<<endl;
							i=0;
							fstream outrdata("kunden.bin",ios::out);
							while(i<anzahl)
							{
								cout<<"\n\tWie ist der Kundenvorname ? \n\t\xAF ";
								cin>>rdaten[i].vorname;
								cout<<"\n\tWie ist der Kundennachname ? \n\t\xAF ";
								cin>>rdaten[i].nachname;
								cout<<"\n\tWelche Kundennummer hat der Kunde? \n\t\xAF ";
								cin>>rdaten[i].kundennummer;
								cout<<"\n\tAuf welcher Stra\xE1""e wohnt der Kunde \n\t\xAF ";
								cin>>rdaten[i].estrasse;
								cout<<"\n\tWie ist die Hausnummer? \n\t\xAF ";
								cin>>rdaten[i].hnummer;
								cout<<"\n\tIn welcher Stadt wohnt der Empf\x84nger? \n\t\xAF ";
								cin>>rdaten[i].stadt;
								cout<<"\n\tWelche Postleitzahl besitzt "<<rdaten[i].stadt<<"? \n\t\xAF ";
								cin>>rdaten[i].epostleitzahl;
								outrdata.write((const char*)&rdaten[i],sizeof(rdaten[i]));
								cout<<"\n\tWollen Sie noch einen Kunden einlesen? (1=Ja, 0=Nein)\n\t\xAF ";
								cin>>janein;
								if(janein==1)
								{
									i++;
								}
								else 
								{
									zkunden=i+1;
									outrdata.close();
									break;
								}
							}
							break;
						}

			case '3':	system("cls");
						in.open("artikel.bin",ios::in);
						cout<<"\n\t <3> Artikel Ansehen"<<endl<<"\t"<<endl;
						while(true)
						{
							for(i=0;i<zartikel;i++)
							{   
                                in.read((char*)&daten2[i],sizeof(daten2[i]));
								cout<<"\n\tArtikelname: \t\xAF "<<daten2[i].name;
								cout<<"\n\tArtikelnummer: \t\xAF "<<daten2[i].nummer;
								cout<<"\n\tArtikelpreis: \t\xAF "<<setprecision(2)<<fixed<<daten2[i].preis<<" Euro\n\t";
							}
							break;
						}
						system("pause");
						in.close();
						break;	

			case '4':   system("cls");
						cout<<"\n\t <4> Kundendaten Ansehen"<<endl<<endl;
						break;					

			case '\x1B':cout<<"\n\tDas Programm wird beendet..."<<endl<<endl;
						exit(0);
						break;

			default:	cout<<"\n\tEs wurde eine falsche Eingabe get\x84tigt!"<<endl<<endl;
						break;
			}
	}
	while(x!=0);
	return 0;
}
 
main muss immer rückgabetyp int haben???

NEIN, die Überschrift sagt es schon, ich habe es immer so gelernt dass der rückgabetyp von funktionen und auch sehr wohl von der main funktion VOID sein darf, übergabeparameter können ebenfalls void sein, sollten aber immer drinnen stehen ;)


greeZ bis denn
joggl
 
Im C++ Standard ist festgelegt das main() den Rückgabewert int hat, darf also wenn du standardkonform schreiben willst nicht void sein.
Die Funktion ist weiterhin eine spezielle Funktion so das dein Vergleich mit anderen Funktionen an der Stelle unangebracht ist, die Parameterliste kann natürlich leer sein da macht es auch keinen Unterschied ob du nun void explizit hinschreibst. Und wenn du keine Parameter hast was ja die Vorraussetzung für void als parameter wäre was willst du dann da hinschreiben?! ...

@ Abstauber dein Code ist immernoch totaler Mist... warum habe ich dir bereits erklärt. Also entweder du bittest deinen Lehrer es anständig zu erklären oder wenn es dich persönlich interessiert weil du C++ lernen willst zeigst du Eigeninitiative und postest nicht jeden Mist immerwieder hier.... nur mal meine Meinung dazu.
 
Nein, man muss laut Norm <cstdlib> inkludieren.
system ist ein plattformunabhängiger Befehl.
Allerdings bindet man AFAIR automatisch einen Header ein, der system() definiert, sobald man windows.h nimmt.
 
"man system" sagt bei mir
Code:
#include <stdlib.h>
int system (const char * string);
EDIT: Oder wie sheepd richtig erwähnte das c++ equivalent cstdlib


@cr: bzgl Abstaubers Code: ACK habs ihm auch schon gesagt...

Also der gcc/g++ (4.1.1) braucht das int. Ohne gibts nen Fehler:
Code:
$ g++ -o void_main_void void_main_void.cpp
void_main_void.cpp:1: Fehler: ?::main? muss ?int? zurückgeben
 
Zurück
Oben