Запись в csv-файл на языке C++
Привет,
У меня есть некоторые данные в файле csv/txt в следующем формате:
7/11/2012 6:45,7/12/2012 6:45,1.0139,1.0123,1.0067,1.0236,1.0253,1.0289,
7/11/2012 6:45,7/12/2012 6:45,96.95,97.08,96.86,0,0,0,
7/11/2012 6:45,7/12/2012 6:45,1.5507,1.5487,1.5441,1.5623,1.5639,1.5691,
Я пытаюсь разобрать эти строки и записать в другой csv-файл. CSV должен включать в себя различные строки и столбцы.
Мой код таков:
void readInput(char* fileName) { printf("****************ReadInput***************\n"); // read file ifstream fin(fileName); string tmp = ""; // a line in the input file while(getline(fin, tmp)) { // add string into vector listString.push_back(tmp); cout << listString[listString.size() - 1] << endl; } printf("\n\n"); fin.close(); } /* * parseValues is to extract data in the input file */ void parseValues() { printf("****************ParseValue***************\n"); for (int i = 0; i < listString.size(); ++i) { char tmp[100000]; strcpy(tmp, listString[i].c_str()); // copy string to char array stringArray tmpArray; // utilize string token to extract data char * pch; pch = strtok (tmp,","); while (pch != NULL) { tmpArray.push_back(pch); printf ("%s\t",pch); // get the next token pch = strtok (NULL, ","); } data.push_back(tmpArray); printf("\n"); } } /* * parseValues is to write data at the beginning of file */ void writeOutput01(char* fileName) { ofstream fout(fileName); // for each row for (int i = 0; i < listString.size(); ++i) { // for each column for (int j = 0; j < data[i].size(); ++j) fout << data[i][j] << ','; fout << "\n"; } fout.close(); }
Когда он разбирает и пишет, пишет в 3 строки и один столбец.
Он пишет в одном столбце вместо 8 столбцов для каждой строки.
Как это исправить?
С уважением,