gpt4 book ai didi

c++ - 使用 std::stringstream 转换为字符串在空格处失败

转载 作者:太空宇宙 更新时间:2023-11-04 16:08:01 25 4
gpt4 key购买 nike

我正在尝试使用 std::stringstream 将任何字符串或字符或数字转换为 std::string。这就是我正在做的:

template<typename T>
std::string toString(T a){
std::string s;
std::stringstream ss;
ss <<a;
ss >>s;
return s;
}

int main(int argc, char* argv[]) {
char s[100]="I am a string with spaces";
std::cout<<toString(s);

return 0;
}

但它在第一个空白处失败。

输出:

I

预期输出:

I am a string with spaces

我该怎么做。

注意:s 也可以包含换行符。

最佳答案

operator<<插入s没问题进入字符串流。这和你做的没有什么不同std::cout << s .你做错的是从流中提取到 s .这只会读取一个空白字符(包括空格和换行符)。要获取流的内容,请执行以下操作:

return ss.str();

然而,这只是一种复杂的做法:

std::string str = s;

只需将整个程序减少 10 行:

#include <iostream>

int main(int argc, char* argv[]) {
char s[100]="I am a string with spaces";
std::cout<<std::string(s);

return 0;
}

关于c++ - 使用 std::stringstream 转换为字符串在空格处失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32087791/

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