005
09.07.2005, 17:40 Uhr
(un)wissender
Niveauwart
|
Alles komplett (zumindest wie ich es verstanden habe...)
C++: |
#include <functional> #include <algorithm> #include <iterator> #include <iostream> #include <fstream> #include <vector> #include <string> #include <cctype>
int main() { std::ifstream in("test.txt"); std::vector <std::string> buffer; std::string line; while(std::getline(in, line)) { line.erase( remove_if(line.begin(), line.end(), std::ptr_fun(isspace)), line.end()); //keinen whitespace... buffer.push_back(line); } //buffer ausgeben std::cout << "Buffer\n"; std::copy(buffer.begin(), buffer.end(), std::ostream_iterator<std::string>(std::cout, "\n")); std::vector <std::string> names, values; typedef std::vector<std::string>::const_iterator constVecIter; constVecIter endBuffer = buffer.end(); for(constVecIter i = buffer.begin(); i != endBuffer; ++i) { std::size_t offset = i->find('='); if(std::string::npos == offset) { std::cout << "Error, = nicht gefunden!"; return 0; } names.push_back(i->substr(0, offset)); values.push_back(i->substr(offset + 1)); // +1 weil wir = nicht wollen } //names aussgeben std::cout << "\nNamen\n"; std::copy(names.begin(), names.end(), std::ostream_iterator<std::string>(std::cout, "\n")); //values aussgeben std::cout << "\nWerte\n"; std::copy(values.begin(), values.end(), std::ostream_iterator<std::string>(std::cout, "\n")); //Speichern std::ofstream namesOut("names.txt"), valuesOut("values.txt"); std::copy(names.begin(), names.end(), std::ostream_iterator<std::string>(namesOut, "\n")); std::copy(values.begin(), values.end(), std::ostream_iterator<std::string>(valuesOut, "\n")); }
|
-- Wer früher stirbt ist länger tot. |