Werte in Datei abschpeichern



  • Hallo, ich habe 4 Vektoren mit Daten(Zahlen). Wie kann ich sie alle nacheinander spaltenweise in eine Datei jeweils mit 10 Nachkommastellen ausgeben? Sie müssen nebeneinander stehen, damit ich das plotten kann.



  • müsste ungefähr so gehn:

    vector<double> v1, v2, v3;
    ofstream ofs("daten.txt");
    ofs.precision(10);
    //annahme: alle vektoren haben gleich viel daten
    for(size_t i = 0; i < v1.size(); ++i)
    {
      ofs << v1[i] << ' ' << v2[i] << ' ' << v3[i] << endl;
    }
    


  • uns was muss ich in dem header einbinden fstream?



  • <fstream>
    und
    <vector>

    und using namespace std; sollte noch irgendwo hin



  • Kan man das auch ausgerichtet ausgeben? Dass die ersten Ziffern immer untereinander sind?



  • Ja, dafür gibt es die IO-Flags wie width, precision usw.

    #include <iostream>
    #include <fstream>
    #include <vector>
    #include <algorithm>
    #include <iterator>
    #include <ctime>
    
    using std::vector;
    using std::ofstream;
    using std::endl;
    
    int main()
    {
    	srand(time(0));
    	vector<double> v1, v2, v3, v4;
    
    	std::generate_n(std::back_inserter(v1), rand()%100, rand);
    	std::generate_n(std::back_inserter(v2), rand()%100, rand);
    	std::generate_n(std::back_inserter(v3), rand()%100, rand);
    	std::generate_n(std::back_inserter(v4), rand()%100, rand);
    
    	ofstream out("YOURFILE.TXT");
    
    	std::ostream & of = (true) ? std::cout : out;
    
    	std::size_t index = 0;
    	while ( index < v1.size() || index < v2.size() || index < v3.size() || index < v4.size() ) // unschön :(
    	{
    		of.width(15);
    		of.precision(10);
    
    		of << std::fixed << std::right << std::showpos;
    
    		if ( index < v1.size() )
    			of << v1[index] << " ";
    		if ( index < v2.size() )
    			of << v2[index] << " ";
    		if ( index < v3.size() )
    			of << v3[index] << " ";
    		if ( index < v4.size() )
    			of << v4[index];
    
    		of << endl;
    	}
    
    	return 0;
    }
    


  • das ding stürzt leider ab



  • Ja, die || im Schleifenkopf müssen && sein.


Anmelden zum Antworten