std::ifstream file("toto.txt"); std::string line; while (std::getline(file, line)) { std::istringstream ss(line); std::string word; while (std::getline(ss, word, ';')) { std::cout << word << " "; } std::cout << std::endl; }
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
std::string s = "5.2"; double d = std::stod(s);
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
#include <sstream> #include <iostream> #include <vector> #include <string> using namespace std; string s6 ("3.14"); // chaine contenant des chiffres double d6 = stod(s6); cout<<"i5="<<i5<<" d6="<<d6<<endl;
stod was not declared in this scope
#include <iostream> #include <stdlib.h> #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <cstdio> #include <string.h> #include <cstdlib> using namespace std; int main() { ifstream file("C:/Users/AH673B4N/Documents/_Developpement/Dymola/ThreePhaseCableABCDBuilder/Inputs/mesure1.csv"); string line; vector<double> vec; while (getline(file, line)) { cout << line << endl; istringstream ss(line); string word; while (getline(ss, word,';')){ double value = strtod(word.c_str(), NULL); // cnversion string to double vec.push_back(value); //remplissage du vecteur } } //Affichage du vecteur for (int i = 0; i < vec.size(); i++){ cout << vec[i] << '\n'; } //cout << vec[0] << " " << vec [1] ; return 0; }
#include <iostream> #include <fstream> #include <sstream> #include <vector> int main() { const std::string filename = "C:/Users/AH673B4N/Documents/_Developpement/Dymola/ThreePhaseCableABCDBuilder/Inputs/mesure1.csv"; std::ifstream file(filename); std::string line; std::vector<double> vec; if (!file) { std::cerr << "Can't open file " << filename << std::endl; return 1; } while (std::getline(file, line)) { std::istringstream ss(line); std::string word; while (std::getline(ss, word, ';')) { try { vec.push_back(std::stod(word)); } catch (std::invalid_argument& e) { std::cerr << "Can't convert " << word << " to double (" << e.what() << ")" << std::endl; } } } std::cout << "Vec: "; for (auto& val : vec) // on aurait aussi pu écrire for (double val : vec) std::cout << val << " "; std::cout << std::endl; return 0; }
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
#include <iostream> #include <fstream> #include <sstream> #include <vector> #include <string.h> int main() { const std::string filename = "C:/Users/AH673B4N/Documents/_Developpement/Dymola/ThreePhaseCableABCDBuilder/Inputs/Measurements.csv"; std::ifstream file(filename); std::string line; std::vector<std::vector<double>> vec; int lines = 0; if (!file) // tester l'existance du fichier et la possibilité d'ouverture { std::cerr << "Can't open file " << filename << std::endl; return 1; } while(!file.eof()) // eof end of file { std::getline (file, line); lines++; //incrémentation des lignes std::istringstream ss(line); std::string word; while (std::getline(ss, word, ';')) { try { for (int i =1; i<lines; i++) { vec.push_back(std::vector<double>(std::stod(word))); } } catch (std::invalid_argument& e) { std::cerr << "Can't convert " << word << " to double (" << e.what() << ")" << std::endl; } } } std::cout << "Vec: "; for (auto& val : vec) // on aurait aussi pu écrire for (double val : vec) { std::cout << val << " "; //std::cout << vec [1]<< std:: endl; std::cout << std::endl; //std::cout << vec [0]+vec[1] << std::endl; // on eut faire des opérations sur les cases du mon tableau, les cases sont accessibles } return 0; }
#include <string> #include <sstream> #include <iostream> #include <vector> #include <fstream> int main() { const std::string filename = "C:/Users/Measurements.csv"; std::ifstream in(filename); // open the file std::string line, field; std::vector <std::vector <string> > array; // the 2D array std::vector<string> v; if (!in) // error if the file doesn't exist { std::cerr << "Can't open file " << filename << std::endl; return 1; } while ( std::getline(in,line) ) // get next line in file { v.clear(); std::stringstream ss(line); while (std::getline(ss,field,';')) // break line into comma delimitted fields { v.push_back(field); // add each field to the 1D array } array.push_back(v); // add the 1D array to the 2D array } // print out what was read in for (size_t i=0; i<array.size(); ++i) { for (size_t j=0; j<array[i].size(); ++j) { std:: cout << array[i][j] << " | "; // (separate fields by |) } std:: cout << "\n"; } //std:: cout << "array[1][3]= " << array[1][3] <<etd::endl; return 0; }
#include <string> #include <sstream> #include <iostream> #include <vector> #include <fstream> int main() { const std::string filename = "C:/Users/Measurements.csv"; std::ifstream file(filename); if (!file) { std::cerr << "Can't open file " << filename << std::endl; return 1; } std::string line; std::vector<std::vector<double>> array; while (std::getline(file, line)) { std::vector<double> v; std::string field; std::stringstream ss(line); while (std::getline(ss, field, ';')) { try { v.push_back(std::stod(field)); } catch (std::invalid_argument& e) { std::cerr << "Can't convert " << field << " to double (" << e.what() << ")" << std::endl; continue; } } if (!v.empty()) // Prevent invalid lines to display empty lines later array.push_back(v); } std::cout << "Vec:\n"; for (auto& vec : array) { for (auto& value : vec) std::cout << value << "|"; std::cout << std::endl; } return 0; }
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
#include <string> #include <sstream> #include <iostream> #include <vector> #include <fstream> #include <clocale> template <class charT, charT sep> class punct_facet: public std::numpunct<charT> { protected: charT do_decimal_point() const { return sep; } }; double comaStod(std::string const& s) { std::istringstream iss(s); iss.imbue(std::locale(std::cout.getloc(), new punct_facet<char, ','>)); double d; if (!(iss >> d)) throw std::invalid_argument("invalid double"); return d; } int main() { const std::string filename = "C:/Users/Measurements.csv"; std::ifstream file(filename); if (!file) { std::cerr << "Can't open file " << filename << std::endl; return 1; } std::string line; std::vector<std::vector<double>> array; while (std::getline(file, line)) { // Ignore line starting with # if (line.empty() || line[0] == '#') continue; std::vector<double> v; std::string field; std::stringstream ss(line); while (std::getline(ss, field, ';')) { try { v.push_back(comaStod(field)); } catch (std::invalid_argument& e) { std::cerr << "Can't convert " << field << " to double (" << e.what() << ")" << std::endl; continue; } } if (!v.empty()) array.push_back(v); } std::cout << "Vec:\n"; for (auto& vec : array) { for (auto& value : vec) std::cout << value << "|"; std::cout << std::endl; } return 0; }
Améliorer votre expérience CodeS-SourceS avec ce plugin:
http://codes-sources.commentcamarche.net/forum/affich-10000111-plugin-better-cs-2#cptpingu-signature
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.