matrix
-
Hi Leutz hab folgendes Problem:
will ne Matrix einlesen un bekomm nur wirres Zeug ausgegeben.
FUNKTION ZUM EINLESEN
void FileV :: einlesen() { ifstream Ausgabedatei (Dateiname,ios::in); int i,j; for(i=0;i<4;i++) { for(j=0;j<5;j++) { if(!Ausgabedatei.eof()) Ausgabedatei>>Matrix[i][j]; else cout << "Datei fehlerhaft!\n"; } } for (i=0;i<5;i++) { if(!(Ausgabedatei.eof())) Ausgabedatei >> Preisvektor[i]; else cout << "Datei fehlerhaft!\n"; } }
ZUM BERECHNEN:
void FileV :: berechnen() { int i,j; for(i=0;i<4;i++) { Preis[i]=0; for(j=0;j<5;j++) { Preis[i] += Matrix[i][j] * Preisvektor[j]; } } }
ZUM AUSGEBEN:
void FileV :: ausgeben() { int i,j; cout <<"\n\n"; cout <<" Vorprodukte:\n"; cout <<" 1 2 3 4 5 Preis\n"; cout <<"Produkt:\n"; for (i=0;i<4;i++) { cout << "Prod" << i+1 << "\t\t\t"; for(j=0;j<5;j++) { cout << Matrix[i][j] << "\t"; } cout << Preis[i] <<"\n"; }
im MAIN dann nur
void main() { FileV Datei; Datei.einlesen(); Datei.berechnen(); Datei.ausgeben(); }
und beim ausgeben bekomm ich 20x meine Abfangausgabe "Datei fehlerhaft!!"
und in der Matrix stehen die Speicheradressen raus.
-
warum nennst du denn einen Eingabestrom ifstream Ausgabedatei??
wie sieht denn deine Klasse FileV aus? Attribute sind ja wahrscheinlich:private: string Dateiname; int Matrix[4][5]; int Preisvektor[5]; int Preis[4];
oder so ähnlich. Guck dir mal an wo du Dateiname füllst und mit was du das füllst und frag mal irgendwo auf
if( !Ausgabedatei ){ cerr<<"Datei konnte nicht geöffnet werden!"<<endl; }
ab