Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Datei einlesen und nach Klasse übergeben

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.11.2005, 15:43 Uhr
MarcusMeetCPlusPlus



Hallo, wie kann ich eimen Array einer Klasse beliebig viele Werte zuweisen? Die Werte sollen aus einer Datei gelesen werden und anschließend an das Klassen-Array übergeben werden, damit man Berechnungen durchführen kann.

Ich hoffe mirkann jemand dabei helfen! THX!!!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.11.2005, 17:06 Uhr
mischa
Fragender


einem array kann man nicht unendlich viele werte zu weisen
wenn ein array 10 felder hat kannst du ihm nur 10 werte zuweisen nicht mehr
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.11.2005, 17:21 Uhr
Spacelord
Hoffnungsloser Fall


Hi,
nimm einen der STL Container ne list oder nen vector. Je nachdem wie du damit nachher weiter arbeiten musst.
Ich hab mal nen kleines Beispiel fertig gemacht wo eine Klasse die den Mittelwert aus integern berechnen soll die entsprechenden Daten aus nem File liest.
In dem Beispiel nutze ich nen istream_iterator<int>.Dieser versucht int´s zu lesen die,durch ein Trennzeichen getrennt (in diesem Fall Whitespaces),in ner Datei(ifstream) liegen.
Da ist jetzt nur das nötigste drin also keine grossartige Fehlerüberprüfung usw.
Schau es dir halt mal an.
Oben auf der Seite sind 2 Links;einer zur STL Doku wo du nähere Informationen zu list/vector/istream_iterator usw findest und einer zu ner Doku von den Standard C++ Streams.

Mittelwert.h

C++:
#ifndef __MITTELWERT_H
#define __MITTELWERT_H

#include <list>

class mittelwert
{
public:
    void clear();
    void addValue(const int);
    void getValuesFromFile(const std::string&);
    double getMittelwert()const;
private:
    std::list<int> values;
};

#endif



Mittelwert.cpp

C++:
#include "mittelwert.h"
#include <iostream>
#include <fstream>


void mittelwert::clear()
{
    values.clear();
}

void mittelwert::addValue(const int v)
{
    values.push_back(v);
}

void mittelwert::getValuesFromFile(const std::string& str)
{
    std::ifstream in(str.c_str());
    if(in)
    {
        values.clear();
        std::istream_iterator<int> it(in),end;
        while(it!=end)
        {
            values.push_back(*it);
            it++;
        }
        in.close();
    }
    else
        std::cout<<"Probleme mit dem File!"<<std::endl;
}

double mittelwert::getMittelwert()const
{
    int anzahl=0;
    long summe=0;
    std::list<int>::const_iterator it = values.begin();
    while(it!=values.end())
    {
        summe+=*it;
        ++anzahl;
        ++it;
    }
    if(anzahl>0)
        return static_cast<double>(summe)/static_cast<double>(anzahl);
    else
        return 0;
}



Und ne main zum testen

C++:
#include <iostream>
#include "mittelwert.h"

int main()
{
    mittelwert m;
    m.getValuesFromFile("TestFile.txt");
    std::cout<<"Der Mittelwert ist: "<<m.getMittelwert()<<std::endl;

    return 0;
}




MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.

Dieser Post wurde am 26.11.2005 um 17:22 Uhr von Spacelord editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
27.11.2005, 12:40 Uhr
MarcusMeetCPlusPlus



Hi Spacelord!
ja, das ist schon ziemlich genau das was ich suche. nur leider bin ich in c++ noch nicht so fortgeschritten, um das alles so zu verstehen. Versuche mir aber daraus etwas zu basteln. Danke!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: