fork(3) download
  1. #include <iostream>
  2. #include <fstream>
  3. #include <locale>
  4. #include <vector>
  5. #include <sstream>
  6. #include <iomanip>
  7. struct tick_is_space : std::ctype<char> {
  8. tick_is_space() : std::ctype<char>(get_table()) {}
  9. static std::ctype_base::mask const* get_table()
  10. {
  11. static std::vector<std::ctype_base::mask>
  12. rc(table_size, std::ctype_base::mask());
  13. rc['\n'] = std::ctype_base::space;
  14. rc['\''] = std::ctype_base::space;
  15. return &rc[0];
  16. }
  17. };
  18.  
  19. int main()
  20. {
  21. // std::ifstream ifs("input.data"); // no files on ideone
  22. std::cin.imbue(std::locale(std::locale(), new tick_is_space()));
  23. int foo;
  24. std::string type, ullstr;
  25. while( std::cin >> foo >> type >> ullstr)
  26. {
  27. std::vector<unsigned long long> ull;
  28. while(ullstr.size() > 15)
  29. {
  30. std::istringstream is(ullstr.substr(0, 16));
  31. unsigned long long tmp;
  32. is >> std::hex >> tmp;
  33. ull.push_back(tmp);
  34. ullstr.erase(0, 16);
  35. }
  36. std::cout << std::dec << foo << " " << type << " "
  37. << std::hex << std::showbase;
  38. for(size_t p=0; p<ull.size(); ++p)
  39. std::cout << std::setw(16) << std::setfill('0') << ull[p] << ' ';
  40. std::cout << '\n';
  41. }
  42. }
  43.  
Success #stdin #stdout 0s 2868KB
stdin
0ULL'04001C0180000000000000000EE317BC'
52L'04001C0180000000'
stdout
0 ULL 0x4001c0180000000 00000000xee317bc 
52 L 0x4001c0180000000