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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question#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