1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | #include <iostream> #include <string> #include <sstream> #include <locale> #include <vector> #include <cstring> using namespace std; struct colon_separated_only: std::ctype<char> { colon_separated_only(): std::ctype<char>(get_table()) {} static std::ctype_base::mask const* get_table() { typedef std::ctype<char> cctype; static const cctype::mask *const_rc= cctype::classic_table(); static cctype::mask rc[cctype::table_size]; std::memcpy(rc, const_rc, cctype::table_size * sizeof(cctype::mask)); rc[':'] = std::ctype_base::space; return &rc[0]; } }; struct table_t { std::string key; std::string first; std::string last; std::string rank; std::string additional; }; int main() { std::string buf = "44:william:adama:commander:stuff\n33:luara:roslin:president:data\n"; stringstream s(buf); s.imbue(std::locale(std::locale(), new colon_separated_only())); table_t t; std::vector<table_t> data; while ( s >> t.key >> t.first >> t.last >> t.rank >> t.additional ) { data.push_back(t); } for(size_t i = 0 ; i < data.size() ; ++i ) { cout << data[i].key <<" "; cout << data[i].first <<" "<<data[i].last <<" "; cout << data[i].rank <<" "<< data[i].additional << endl; } return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c3N0cmVhbT4KI2luY2x1ZGUgPGxvY2FsZT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNzdHJpbmc+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGNvbG9uX3NlcGFyYXRlZF9vbmx5OiBzdGQ6OmN0eXBlPGNoYXI+IAp7CiAgICBjb2xvbl9zZXBhcmF0ZWRfb25seSgpOiBzdGQ6OmN0eXBlPGNoYXI+KGdldF90YWJsZSgpKSB7fQoKICAgIHN0YXRpYyBzdGQ6OmN0eXBlX2Jhc2U6Om1hc2sgY29uc3QqIGdldF90YWJsZSgpCiAgICB7CiAgICAgICAgdHlwZWRlZiBzdGQ6OmN0eXBlPGNoYXI+IGNjdHlwZTsKICAgICAgICBzdGF0aWMgY29uc3QgY2N0eXBlOjptYXNrICpjb25zdF9yYz0gY2N0eXBlOjpjbGFzc2ljX3RhYmxlKCk7CiAgICAgICAgCiAgICAgICAgc3RhdGljIGNjdHlwZTo6bWFzayByY1tjY3R5cGU6OnRhYmxlX3NpemVdOwogICAgICAgIHN0ZDo6bWVtY3B5KHJjLCBjb25zdF9yYywgY2N0eXBlOjp0YWJsZV9zaXplICogc2l6ZW9mKGNjdHlwZTo6bWFzaykpOwoKICAgICAgICByY1snOiddID0gc3RkOjpjdHlwZV9iYXNlOjpzcGFjZTsgCiAgICAgICAgcmV0dXJuICZyY1swXTsKICAgIH0KfTsKCnN0cnVjdCB0YWJsZV90CnsKICAgIHN0ZDo6c3RyaW5nIGtleTsKICAgIHN0ZDo6c3RyaW5nIGZpcnN0OwogICAgc3RkOjpzdHJpbmcgbGFzdDsKICAgIHN0ZDo6c3RyaW5nIHJhbms7CiAgICBzdGQ6OnN0cmluZyBhZGRpdGlvbmFsOwp9OwoKaW50IG1haW4oKSB7CglzdGQ6OnN0cmluZyBidWYgPSAiNDQ6d2lsbGlhbTphZGFtYTpjb21tYW5kZXI6c3R1ZmZcbjMzOmx1YXJhOnJvc2xpbjpwcmVzaWRlbnQ6ZGF0YVxuIjsKICAgICAgICBzdHJpbmdzdHJlYW0gcyhidWYpOwogICAgICAgIHMuaW1idWUoc3RkOjpsb2NhbGUoc3RkOjpsb2NhbGUoKSwgbmV3IGNvbG9uX3NlcGFyYXRlZF9vbmx5KCkpKTsKICAgICAgICB0YWJsZV90IHQ7CiAgICAgICAgc3RkOjp2ZWN0b3I8dGFibGVfdD4gZGF0YTsKICAgICAgICB3aGlsZSAoIHMgPj4gdC5rZXkgPj4gdC5maXJzdCA+PiB0Lmxhc3QgPj4gdC5yYW5rID4+IHQuYWRkaXRpb25hbCApCiAgICAgICAgewogICAgICAgICAgIGRhdGEucHVzaF9iYWNrKHQpOwogICAgICAgIH0KICAgICAgICBmb3Ioc2l6ZV90IGkgPSAwIDsgaSA8IGRhdGEuc2l6ZSgpIDsgKytpICkKICAgICAgICB7CiAgICAgICAgICAgY291dCA8PCBkYXRhW2ldLmtleSA8PCIgIjsKICAgICAgICAgICBjb3V0IDw8IGRhdGFbaV0uZmlyc3QgPDwiICI8PGRhdGFbaV0ubGFzdCA8PCIgIjsKICAgICAgICAgICBjb3V0IDw8IGRhdGFbaV0ucmFuayA8PCIgIjw8IGRhdGFbaV0uYWRkaXRpb25hbCA8PCBlbmRsOwogICAgICAgIH0KCXJldHVybiAwOwp9
-
upload with new input
-
result: Success time: 0s memory: 2868 kB returned value: 0
44 william adama commander stuff 33 luara roslin president data


