原文: How to Convert an Int to a String in C++ – Integer Cast Tutorial

类型转换是将一个变量从一个数据类型转换到另一个数据类型的过程。

类型转换可以以隐式或显式方式进行。

隐式类型转换通过编译器自动完成,而显式类型转换则由开发者完成。

在这篇文章中,你将学习如何在 C++ 中使用 stringstream 类和 to_string() 方法将整数转换成字符串。

如何在 C++ 中使用 stringstream 类将整数转换成字符串

使用 stringstream 类,我们可以将整数转换为字符串。

这里有一个例子可以帮助你理解为什么你需要把一个整数转换成一个字符串:

#include <iostream>
using namespace std;

int main() {

    int age = 20;

    cout << "The user is " + age + " years old";
    // error: invalid operands of types 'const char*' and 'const char [11]' to binary 'operator+'

    return 0; 

}

在上面的例子中,我们创建了一个 int 变量,其值为 20。

当我们尝试在一个字符串中连接这个值时,得到了一个错误:“invalid operands of types...(无效的操作数类型)”。

出现这个错误是因为我们试图使用两个不兼容的变量类型进行操作。解决办法是转换一个变量,使其与另一个兼容。

stringstream 类有插入(<<)和提取(>>)操作符。

插入操作符用于将一个变量传递给流。在我们的例子中,将一个整数传递给流。

提取操作符用于给出修改后的变量。

换句话说,一个 stringstream 对象会接收一个数据类型,将其转换为另一个数据类型,并将新的数据类型分配给一个变量。

这里有一个例子:

#include <iostream>
#include <sstream>  
using namespace std;

int main() {

    int age = 20;
    
    // stringstream 对象
    stringstream stream;
    
    // 插入整数变量
    stream << age;
    
    // 变量来保存来自流的新变量
    string age_as_string;
    
    // 提取整数变量的字符串类型
    stream >> age_as_string;
    
    cout << "The user is " + age_as_string + " years old";
    // The user is 20 years old

    return 0; 

}

在上面的代码中,我们创建了一个名为 streamstringstream 对象。注意,你必须在使用 stringstream 类之前包括它:include <sstream>

然后我们将整数插入到 stream 中:stream << age;

之后,我们创建了一个名为 age_as_string 的新变量。这个变量将存储将从流中提取的字符串变量。

最后,我们提取了整数的字符串类型,并将其存储在上面创建的变量中:stream >> age_as_string;

现在我们可以将这些字符串连接起来,得到所需的结果:

    cout << "The user is " + age_as_string + " years old";
    // The user is 20 years old

如何在 C++ 中使用 to_string() 方法将整数转换为字符串

你可以使用 to_string() 方法将 int、float 和 double 数据类型转换为字符串。

下面是一个例子:

#include <iostream>
using namespace std;

int main() {

    int age = 20;
    
    string age_as_string = to_string(age);
    
    cout << "The user is " + age_as_string + " years old";
    // The user is 20 years old

    return 0; 

}

在上面的代码中,我们把 age 变量传给了 to_string()to_string(): string age_as_string = to_string(age);

这就把 age 变量转换成了一个字符串。就像上一节的例子一样,我们现在可以把这个变量作为一个字符串使用:

cout << "The user is " + age_as_string + " years old";
// The user is 20 years old

小结

在这篇文章中,我们谈到了在 C++ 中把整数转换为字符串的不同方法。

这些例子展示了如何使用 stringstream 类和 to_string() 方法将整数转换成字符串。

Happy coding!