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


Anmelden zum Antworten