gpt4 book ai didi

c++ - 将 double/int 转换为字符串的函数

转载 作者:太空宇宙 更新时间:2023-11-04 14:41:41 24 4
gpt4 key购买 nike

我是 c++ 的初学者,所以答案可能很明显。

我有两个函数 - 一个能够将 int 转换为字符串,另一个能够将 double 转换为字符串。然而,将这两者合二为一会更优雅。我已经用下面的代码试过了,但它产生了一个错误:‘number’ was not declared in this scope

string number_into_string (void* data, int psize)
{
if (psize == sizeof(int))
{
int* number; number =(int*)data;
}
if (psize == sizeof(double))
{
double* number; number = (double*)data;
}
ostringstream convert;
convert << number;
string str = convert.str();
return str;
}

int main()
{
double x =1000;
int y = 5;
string str_x = number_into_string(&x, sizeof(x));
string str_y = number_into_string(&y, sizeof(y));
}

最佳答案

因为 number 是在 if ... { 括号内声明的,所以它只存在于那个空间中。此外,您不能让一个变量在 C 或 C++ 中具有两种不同的类型。

(如果您有 C++11 编译器,则根本不需要这样做,只需使用大多数标准类型都存在的 std::to_string)。

解决方案是不使用指针,而是使用模板函数:

template<typename T> string number_into_string(T number)
{
ostringstream convert;
convert << number;
string str = convert.str();
return str;
}

关于c++ - 将 double/int 转换为字符串的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17972588/

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