前段时间,我正在寻找一个片段来为特定大小的行长度进行自动换行,而不会破坏单词。它工作得还算公平,但是现在当我开始在编辑控件中使用它时,我注意到它在两者之间占用了多个空白符号。如果 wstringstream 不适合该任务,我正在考虑如何修复它或完全摆脱它。也许那里有人有类似的功能?
void WordWrap2(const std::wstring& inputString, std::vector<std::wstring>& outputString, unsigned int lineLength)
{
std::wstringstream iss(inputString);
std::wstring line;
std::wstring word;
while(iss >> word)
{
if (line.length() + word.length() > lineLength)
{
outputString.push_back(line+_T("\r"));
line.clear();
}
if( !word.empty() ) {
if( line.empty() ) line += word; else line += +L" " + word;
}
}
if (!line.empty())
{
outputString.push_back(line+_T("\r"));
}
}
换行分隔符应保留\r