>和 > s; return s; } 我想通过使用 std::s-6ren">
gpt4 book ai didi

c++ - 将 char ' ' 或换行符转换为字符串

转载 作者:行者123 更新时间:2023-11-30 03:00:31 26 4
gpt4 key购买 nike

我的目标是转换 ' '进入" " , 和 '\n'进入"\n"

下面的代码适用于一般情况,但不适用于空格和 '\n' .因为>><<运营商不接受' ''\n'

std::string stringFromChar(char a) {
std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary);
std::string s;
ss << a;
ss >> s;
return s;
}

我想通过使用 std::stringstream::binary ,它使用二进制数进行读写。因此,保留字符,不会丢失空格或换行符。

我发现虽然 a' ' , s结果是"" .

我知道解决这个问题的方法:

std::string stringFromChar(char a) {
std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary);
std::string s;
ss << a;
s = ss.str();
return s;
}

是不是读的时候没有去掉空格和换行符,写的时候就被删了?为什么不能将二进制文件与 stringstream 一起使用?

此外,我尝试使用 ss >> std::noskipws >> s 如:

std::string stringFromChar(char a) {
std::stringstream ss(std::stringstream::in | std::stringstream::out | std::stringstream::binary);
std::string s;
ss << a;
ss >> std::noskipws >> s;
return s;
}

它也没有用。为什么? s 仍返回为“”。

最佳答案

不要让它变得如此复杂:

std::string stringFromChar(char a)
{
return std::string(1,a);
}

作为辅助说明:
std::ios::binary 唯一做的就是打开二进制模式。二进制模式停止“\n”与行终止序列(定义为行尾的特定于平台的字符序列)之间的转换。

关于c++ - 将 char ' ' 或换行符转换为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11928009/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com