强制使用 std::stringstream 作为行尾

问题描述 投票:0回答:1

我正在使用

stream << "content" << std::endl
将一些行添加到 std::stringstream 中。然后我会通过
stream.str()
获取内容。 如果将带有
std::endl
的行添加到
std::stringstream
中,则将使用
\n
作为行结尾。

如果添加了

std::stringstream
,是否可以强制
"\r\n"
使用以
std::endl
结尾的特定行?

(我不想插入明确的

stream << "\r\n"
。)

c++ std stringstream
1个回答
1
投票

我想你可以像这样构造一个自定义操纵器:

#include <iostream>

template<class CharT, class Traits>
std::basic_ostream<CharT, Traits>& crlf( std::basic_ostream<CharT, Traits>& os)
{
    return os << "\r\n";
}

int main()
{
    std::cout << "Hello World!" << std::endl; // platform dependent
    std::cout << "Hello World!" << crlf; // always "\r\n"
}
© www.soinside.com 2019 - 2024. All rights reserved.