gpt4 book ai didi

c++ - 将 string 转换为 char ,空格字符未正确转换

转载 作者:行者123 更新时间:2023-11-30 01:27:33 24 4
gpt4 key购买 nike

我使用允许我将任何类型(int、double、float、char)转换为字符串的代码。我测试了程序并选择 char 作为类型值。

stringstream ss;
string s;
char c = '3';
ss << c;
ss >> s;

cout << "CHAR" << endl;
bitset<8> bs2( (char) c );
for( int i = (int) bs2.size(); i >= 0; i-- )
cout << bs2[i] << " ";
cout << endl;

bitset<8> bs1( (char) s.c_str()[0]);
cout << "STRING" << endl;
for( int i = (int) bs1.size(); i >= 0; i-- )
cout << bs1[i] << " ";
cout << endl;

输出是

CHAR
0 0 0 0 0 0 0 1 1
STRING
0 0 0 0 0 0 0 1 1

但是我发现了一件奇怪的事情。我设置了 char c = ' ' 并且值没有正确转换。

CHAR
0 0 0 1 0 0 0 0 0
STRING
0 0 0 0 0 0 0 0 0

我找不到解释以及我做错了什么。

最佳答案

std::string

operator>> 将只读取直到遇到第一个空白字符。如果要提取 std::stringstream 中的所有信息,请使用 str() 成员函数:

s = ss.str();

有关引用,请参阅 operator>>(istream& s, string& str) 的说明和 stringstream::str()

关于c++ - 将 string 转换为 char ,空格字符未正确转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8773153/

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