1
Ich habe ein C++ - Programm, das die Eingabe von einer Linux-Pipe übernimmt und zur weiteren Verarbeitung an std :: cout ausgibt.C++ X-Bytes von std :: cin lesen und Strings auf X-Byte-Länge abschneiden
Derzeit mein Code sieht wie folgt aus:
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;
Dies ist verschwenderisch, da die eingehenden Strings sind riesig.
- Wie lese ich nur rund 100kB von cin in eine C++ - Zeichenfolge und den Rest ignorieren?
- Wie kann ich die C++ - Zeichenfolge auf 65535 Bytes anstelle von Zeichen abgeschnitten? (Ich muss Multi-Byte-Zeichen in Zukunft zu handhaben.)
Ja, std :: string denkt in Bytes; es kennt UTF-8 nicht von der Codepage 932 –