У меня есть программа на С ++, которая принимает данные из канала Linux и выводит в std :: cout для дальнейшей обработки.
В настоящее время мой код выглядит так:
std::istreambuf_iterator<char> it(std::cin);
std::istreambuf_iterator<char> end;
std::string str(it, end);
//Lots of string manipulation here.
str = str.substr(0, 65535);
std::cout << str << std::endl;
Это расточительно, потому что входящие строки огромны.
- Как мне прочитать только около 100 КБ cin в строку c ++ и игнорировать остальные?
- Как я могу обрезать строку c ++ до 65535 байт вместо символов? (Мне нужно будет обрабатывать многобайтовые символы в будущем.)