Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
HexDong
//Title of this code #include <iostream> #include <string> #include <algorithm> #include <vector> #include <exception> #include <stdexcept> using namespace std; template<typename OutIt> OutIt split( const std::string& inputStr , const char delim , OutIt dResult ) { typedef typename std::iterator_traits<OutIt>::value_type Out_type ; for(std::string::const_iterator i = inputStr.begin() ; i != inputStr.end() ; ++i ) { if( delim == *i ) ++dResult; else (*dResult) += *i ; } return ++dResult; } int convert(const string input) { auto copy = "0x" + input; int result; sscanf(copy.c_str() , "%x" , &result); return result; } int main() { const char * hexBuffer = "50 4F 53 54 20 2F 76 6F 74 65 2F 72 61 6E 6B 70 6F 73 74 2E 70 68 70 20 48 54 54 50 2F 31 2E 31 0D 0A 41 63 63 65 70 74 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D 6D 73 2D 61 70 70 6C 69 63 61 74 69 6F 6E 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 61 6D 6C 2B 78 6D 6C 2C 20 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 2F 70 6A 70 65 67 2C 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D 6D 73 2D 78 62 61 70 2C 20 2A 2F 2A 0D 0A 52 65 66 65 72 65 72 3A 20 68 74 74 70 3A 2F 2F 77 77 77 2E 74 74 70 61 69 68 61 6E 67 2E 63 6F 6D 2F 76 6F 74 65 2F 72 61 6E 6B 2E 70 68 70 3F 76 6F 74 65 69 64 3D 36 31 36 26 70 61 67 65 3D 31 0D 0A 41 63 63 65 70 74 2D 4C 61 6E 67 75 61 67 65 3A 20 7A 68 2D 43 4E 0D 0A 43 6F 6E 74 65 6E 74 2D 54 79 70 65 3A 20 61 70 70 6C 69 63 61 74 69 6F 6E 2F 78 2D 77 77 77 2D 66 6F 72 6D 2D 75 72 6C 65 6E 63 6F 64 65 64 0D 0A 41 63 63 65 70 74 2D 45 6E 63 6F 64 69 6E 67 3A 20 67 7A 69 70 2C 20 64 65 66 6C 61 74 65 0D 0A 55 73 65 72 2D 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 2F 34 2E 30 20 28 63 6F 6D 70 61 74 69 62 6C 65 3B 20 4D 53 49 45 20 37 2E 30 3B 20 57 69 6E 64 6F 77 73 20 4E 54 20 36 2E 31 3B 20 57 4F 57 36 34 3B 20 54 72 69 64 65 6E 74 2F 34 2E 30 3B 20 53 4C 43 43 32 3B 20 2E 4E 45 54 20 43 4C 52 20 32 2E 30 2E 35 30 37 32 37 3B 20 2E 4E 45 54 20 43 4C 52 20 33 2E 35 2E 33 30 37 32 39 3B 20 2E 4E 45 54 20 43 4C 52 20 33 2E 30 2E 33 30 37 32 39 3B 20 2E 4E 45 54 34 2E 30 43 3B 20 2E 4E 45 54 34 2E 30 45 29 0D 0A 48 6F 73 74 3A 20 77 77 77 2E 74 74 70 61 69 68 61 6E 67 2E 63 6F 6D 0D 0A 43 6F 6E 74 65 6E 74 2D 4C 65 6E 67 74 68 3A 20 32 30 35 0D 0A 43 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D 41 6C 69 76 65 0D 0A 43 61 63 68 65 2D 43 6F 6E 74 72 6F 6C 3A 20 6E 6F 2D 63 61 63 68 65 0D 0A 43 6F 6F 6B 69 65 3A 20 50 48 50 53 45 53 53 49 44 3D 30 35 34 61 32 65 33 39 36 39 33 33 31 65 35 65 64 61 63 35 65 64 61 61 31 34 36 39 33 33 65 64 3B 20 62 64 73 68 61 72 65 5F 66 69 72 73 74 69 6D 65 3D 31 33 37 36 36 32 31 36 33 34 38 32 38 3B 20 43 4E 5A 5A 44 41 54 41 32 35 38 36 37 30 34 3D 63 6E 7A 7A 5F 65 69 64 25 33 44 33 33 30 36 36 35 30 34 31 2D 31 33 37 36 36 32 31 36 31 35 2D 68 74 74 70 25 32 35 33 41 25 32 35 32 46 25 32 35 32 46 77 77 77 2E 74 74 70 61 69 68 61 6E 67 2E 63 6F 6D 25 32 36 6E 74 69 6D 65 25 33 44 31 33 37 36 36 32 31 36 31 35 25 32 36 63 6E 7A 7A 5F 61 25 33 44 30 25 32 36 72 65 74 69 6D 65 25 33 44 31 33 37 36 36 32 31 36 34 33 34 37 35 25 32 36 73 69 6E 25 33 44 25 32 36 6C 74 69 6D 65 25 33 44 31 33 37 36 36 32 31 36 34 33 34 37 35 25 32 36 72 74 69 6D 65 25 33 44 30 3B 20 43 6F 6F 6B 69 65 43 68 65 63 6B 3D 4F 4B 0D 0A 0D 0A 63 68 6F 69 63 65 5F 69 64 25 35 42 25 35 44 3D 32 38 33 38 37 26 70 61 67 65 3D 31 26 61 6E 73 77 65 72 3D 32 39 64 32 33 32 30 30 63 65 26 70 6F 73 74 5F 64 61 74 61 3D 25 43 43 25 45 31 25 42 44 25 42 42 25 43 44 25 42 36 25 43 36 25 42 31 26 76 6F 74 65 69 64 3D 36 31 36 26 6D 6F 75 78 3D 33 36 39 26 6D 6F 75 79 3D 32 34 37 26 6D 6F 75 7A 3D 39 30 30 26 6D 6F 75 61 3D 31 33 36 33 30 34 34 38 39 31 26 69 73 53 75 62 6D 69 74 3D 31 26 70 71 64 32 38 65 31 64 33 61 34 36 33 65 69 70 3D 37 33 26 64 78 64 32 38 65 31 64 33 61 34 36 33 65 3D 36 38 31 26 69 70 64 32 38 65 31 64 33 61 34 36 33 65 64 78 3D 36 35"; string hexBufferStr(hexBuffer); vector<std::string> splitBuffer( hexBufferStr.size() / 2); auto lastIter = split( hexBufferStr , ' ' , splitBuffer.begin() ); for(auto cur = splitBuffer.begin() ; cur != lastIter ; ++cur ) { try { if( cur->size() != 2 ) throw length_error("not 2"); int result = convert( *cur ); // cout << " " << result << " " ; auto ch = static_cast<unsigned char>(result); cout << ch ; } catch(exception e) { cout << e.what() << endl; } } }
run
|
edit
|
history
|
help
0
U2
Uno v2
hw1 Os
DESim Example
Standard Template Library
12/2
Linear search
Dynamic call
Graphs Iteration2 Directed Graphs
overloading