_doomsday_
Новичок
- 15
- 3
С этим разобрался, но ща выяснил что гетлайн в принципе не читает всё, что после этого символа. Собственно в строку этот символ не попадаетне шарю, как это красиво оформить в C++, но в теории кастуй строку в int и отсеивай лишние байты, отталкиваясь от ASCII
Посмотреть вложение 212145C++:#include <iostream> int main() { const char* str = "hello"; int number = (*(int*)str); unsigned char* bytes = reinterpret_cast<unsigned char*>(&number); for (int i = 0; i < sizeof(number); i++) { // знаю, что дерьмо-код, но не помню, как правильно пройтись по массиву // тут проверяешь байт на валидность std::cout << static_cast<int>(bytes[i]) << " "; } }
C++:#include <iostream> #include <cstring> int main() { const std::string str = "hello"; unsigned char bytes[str.size() + 1]; std::memcpy(bytes, str.c_str(), str.size() + 1); for (std::size_t i = 0; i < str.size(); i++) { std::cout << static_cast<unsigned int>(bytes[i]) << " "; } return 0; }
Последнее редактирование: