transformer un fichier csv en une matrice
Bonjour;
je suis nouveau sur ce forum et débutant en programmation c++;
je veux lire un fichier csv qui contient des valeurs de type entier et par la suite calculer la somme de toute les valeurs du fichier;
j'ai fait plusieurs test pour arriver à ce code mais il m'affiche des résultats faux;
j'ai besoin d'une aide pour avancer dans mon code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| #include <string>
#include <sstream>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <cstdio>
#include <string.h>
#include <cstdlib>
#include <fstream>
using namespace std;
int main()
{
int a=0;
ifstream filename("C:/Users/click/Desktop/exemple.csv"); // open the file
string line;
//field;
vector< vector<int> > array; // the 2D array
vector<int> v; // array of values for one line only
if (!filename) // error if the file doesn't exist
{
cerr << "Can't open file " << filename << endl;
return 1;
}
istringstream ss (line);
while ( getline(filename,line) ) // get next line in file
{
//cout<<line<<endl;
v.clear();
string word;
stringstream ss(line);
while (getline(ss,word,';')) // break line into comma delimitted fields
{
int value=strtod(word.c_str(),NULL);
v.push_back(value); // add each field to the 1D array
array.push_back(v);
}
}
// print out what was read in
for (int i=0; i<4; ++i)
{
for (int j=0; j<5; ++j)
{
cout<<array[i][j]<<"|";
a=a+array[i][j];
}
cout << "\n";
}cout<<"a="<<a<<endl;
system("pause");
return 0;
} |