Zhonguoren
Grünschnabel
Hallo!
Ich bin neu hier und habe mich auch schon eine Weile nicht mehr mit programmieren beschäftigt.
Ich möchte eine csv Datei einlesen, was soweit klappt. Der Haken ist nur, dass ich die Daten dann als char habe, sie aber als float bräuchte. Wenn ich es konvertieren will, kommt bloß Mist raus. Gibt es eine Möglichkeit, das direkt als float einzulesen?
Ich bin neu hier und habe mich auch schon eine Weile nicht mehr mit programmieren beschäftigt.
Ich möchte eine csv Datei einlesen, was soweit klappt. Der Haken ist nur, dass ich die Daten dann als char habe, sie aber als float bräuchte. Wenn ich es konvertieren will, kommt bloß Mist raus. Gibt es eine Möglichkeit, das direkt als float einzulesen?
C++:
ifstream file;
char zeile [1024];
// Dateinamen einlesen
cout << "Dateinamen eingeben: " << flush;
cin.getline(filename, 127);
// Datei öffnen
file.open(filename, ios::in);
if (file.good())
{
// Wenn die Datei geoeffnet werden konnte...
// An den Anfang der Datei springen
file.seekg(0L, ios::beg);
elemente = -1;
while (! file.eof())
{
// Die Datei zeilenweise auslesen
file.getline(zeile, 1024);
elemente++;
}// Zählung der Elemente im Datenarray
cout << "Anzahl der Elemente: "<<elemente << endl;
feld = (Einheit_zeit_wert*) malloc(elemente * sizeof( Einheit_zeit_wert )); //Erzeugen des dynamischen Datenarrays
file.clear (0);
file.seekg(0L, ios::beg); //Zurückspringen an den Anfang der Datei
file.getline(zeile, 1024); //Einlesen einer Zeile
while (! file.eof())
{
char * single; //Einzelne Zeit oder einzelner Wert
int i = 0;
file.getline(zeile, 1024); //Einlesen einer Zeile
file.getline(zeile, 1024); //Überspringen der Spaltenüberschriften
cout<<zeile<<endl;
single = strtok(zeile, ","); //
while (single != NULL)
{
//(*(feld+i)).zeit = *single; //Schreiben der Zeit in Array
istringstream ist (single);
cout<< "Single"<<*single<<endl;
single = strtok(NULL, ",");
cout<<"Single:"<<single<<endl;
//(*(feld+i)).wert >> *single; //Schreiben des Werts in Array
single = strtok(NULL, ",");
cout<<(*(feld+i)).zeit<<endl;
cout<<(*(feld+i)).wert<<endl;
getchar();
}// bis zum Ende der Zeile
i++; //hochzählen der Zählvariablen zum Zugriff auf Datenarray
}
}
else
{
// Wenn die Datei nicht geoeffnet werden konnte,
// aus welchen Gruenden auch immer...
cout << "Datei nicht gefunden." << endl;
}