004
23.02.2005, 22:54 Uhr
0xdeadbeef
Gott (Operator)
|
%lg liest doubles, %d ints. Du hast doubles.
In C++ sähe das wohl allerdings eher so aus:
C++: |
#include <algorithm> #include <fstream> #include <iostream> #include <iterator> #include <sstream> #include <string> #include <vector>
int main(int argc, char *argv[]) { std::vector<std::vector<double> > matrix; std::string zeile; std::ifstream in(argv[1]); std::stringstream sstr;
while(std::getline(in, zeile)) { matrix.push_back(std::vector<double>()); sstr.clear(); sstr.str(zeile); while(true) { char c; double d; if(!(sstr >> d >> c)) break; matrix.rbegin()->push_back(d); } }
for(std::vector<std::vector<double> >::iterator i = matrix.begin(); i != matrix.end(); ++i) { std::copy(i->begin(), i->end(), std::ostream_iterator<double>(std::cout, " ")); std::cout << std::endl; } }
|
Ist nur grad so zusammengeschustert, aber das Prinzip sollte klar werden. Lass es mal über diese Datei laufen:
Code: |
1.23;3.14;5.87;9.12; 1.23;5.12;
4.56;-1.45;3.14;
|
-- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 23.02.2005 um 22:54 Uhr von 0xdeadbeef editiert. |