我正在通过管道从另一个进程中读取一些文本。管道将数据返回给变量chBuf
,但包含许多不可打印的字符。我尝试使用擦除和删除来删除这些不可打印的字符,但抛出异常。该程序在没有此擦除删除线的情况下工作。我可能做错了什么?
ReadFile(si->child_out_r, chBuf, BUFSIZE, &dwRead, NULL);
string s(chBuf);
s.erase(remove_if(s.begin(), s.end(), [](char c) { return !isprint((unsigned)c); }), s.end());
cout << s;