Chakky
Member of Honour
Hi,
kämpfe mittlerweile schon paar Stunden an einer scheinbaren einfacher Aufgabe.
Ich hab folgende CSV Datei
Die "1.6" ist absicht.
Und will das ganze mit einen C++ Programm auslesen und jeden wert in der CSV in einen Array abspeichern. Das ich dann einfach nur noch zugreifen kann mit Array[ZEILE][SPALTE].
Nach vielen Foren durchwühlen und Referenzen lesen habe ich bis jetzt folgendes hinbekommen:
Als Ausgabe bekomme ich folgendes:
Wie man sieht fein säuberlich alle Werte getrennt nur der Letzte Wert passt überhaupt nicht (sieht für mich aus wie irgendein Wert aus den Speicher) nur Warum?
Ich weis der Programmierstil ist nicht der beste es soll einfach nur Funktionieren, da dies die Grundlage ist in ein anderes Funktionierendes System zu integrieren....
Das ganze Teste ich unter Win7 64Bit und Visual Studio 2010 Premium.
kämpfe mittlerweile schon paar Stunden an einer scheinbaren einfacher Aufgabe.
Ich hab folgende CSV Datei
Code:
1.6;2;3;4;5;
6;7;8;9;10;
11;12;13;14;15;
Und will das ganze mit einen C++ Programm auslesen und jeden wert in der CSV in einen Array abspeichern. Das ich dann einfach nur noch zugreifen kann mit Array[ZEILE][SPALTE].
Nach vielen Foren durchwühlen und Referenzen lesen habe ich bis jetzt folgendes hinbekommen:
Code:
#include <fstream>
#include <iostream>
#include <iomanip>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string zeile;
float a, f[6][6];
float b;
char c;
int i=0;
int j=0;
ifstream input("123456.csv",ios::in);
if (input.is_open())
{
while (getline(input, zeile))
{
// cout<<zeile; //testausgaeb
istringstream istr (zeile);//Pointer??
for(i=0;i<5;i++)
for(j=0;j<5;j++){
if (istr >> a && istr >> c && c == ';') //zum trennen
{
cout << "a: " << a <<endl;
f[i][j]=a;
//i++;
// j++;
}}
cout<<"\n";
}
}
else
{
cout << "Dateifehler oder Datei nicht gefunden!" << endl;
}
cout<< f[2][3];
system("PAUSE");
return 0;
}
Als Ausgabe bekomme ich folgendes:
Code:
a: 1.6
a: 2
a: 3
a: 4
a: 5
a: 6
a: 7
a: 8
a: 9
a: 10
a: 11
a: 12
a: 13
a: 14
a: 15
-1.07374e+008Drücken Sie eine beliebige Taste . . .
Wie man sieht fein säuberlich alle Werte getrennt nur der Letzte Wert passt überhaupt nicht (sieht für mich aus wie irgendein Wert aus den Speicher) nur Warum?
Ich weis der Programmierstil ist nicht der beste es soll einfach nur Funktionieren, da dies die Grundlage ist in ein anderes Funktionierendes System zu integrieren....
Das ganze Teste ich unter Win7 64Bit und Visual Studio 2010 Premium.