c ++从std :: cin读取X字节,并将字符串截断为X字节长度

时间:2009-04-30 21:32:12

标签: c++ string

我有一个c ++程序从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;

这很浪费,因为传入的字符串很大。

  1. 我如何才能将大约100kB的cin读取到c ++字符串而忽略其余的?
  2. 如何将c ++字符串截断为65535字节而不是字符? (我将来需要处理多字节字符。)

1 个答案:

答案 0 :(得分:2)

  1. std :: cin.read(&amp; buf,100 * 1024);
  2. std :: string.size()返回num个字节,我很确定。