c ++:如何将整数添加到字符串

Posted

技术标签:

【中文标题】c ++:如何将整数添加到字符串【英文标题】:c++: How to i add an integer to a string 【发布时间】:2014-02-17 03:50:11 【问题描述】:
int value = rand() % 1000;

string filelocation = "C:/Users/Admin/Documents/textfile"

string textfile = ".txt"; 

我怎样才能将它们加在一起并将其存储到另一个字符串变量中

例如

string test = "C:/Users/Admin/Documents/textfile123.txt"

这样我每次运行代码时都可以创建一个唯一的命名文本文件:

outfile.open(test, std::ios::app);

我试过了:

outfile.open("C:/Users/admin/Documents/textfile" + value + ".txt", std::ios::app);  

但我收到错误'+' : cannot add two pointers

【问题讨论】:

【参考方案1】:

使用 std::to_string() 函数将值转换为字符串。 你必须做outfile.open("C:/Users/admin/Documents/textfile" + std::to_string(value) + ".txt", std::ios::app);

【讨论】:

【参考方案2】:

您可以使用 std::stringstream。试试这样的

int value = rand() % 1000;
string filelocation = "C:/Users/Admin/Documents/textfile"
string textfile = ".txt"; 

std::stringstream out;
out << filelocation << value << textfile;
outfile.open(out.str(), std::ios::app);

【讨论】:

这编译并运行,但它只在第一次工作,每次我尝试在初始运行后运行代码时,它不再生成随机文件,它只是打开初始文本文件而不是生成随机文本文件。知道为什么吗?谢谢 @user3131101 您正在附加到文件,因为您在打开文件时指定了 std::ios::app 。如果没有看到更多代码,很难说出发生了什么。【参考方案3】:

您可以使用函数 snprintf 或 sprintf。如果使用 snprintf,您必须应用另一个字符串来保存“C:/Users/Admin/Documents/textfile”。 例如: 冲刺(): sprintf(str,"c:\xxx\%d",%d);

【讨论】:

【参考方案4】:

您需要将value 转换为字符串,然后才能按照说明使用它。现在,您正在尝试将二进制值添加到字符串中。寻找stringstream 来帮助您了解从intstring 的转换。

【讨论】:

以上是关于c ++:如何将整数添加到字符串的主要内容,如果未能解决你的问题,请参考以下文章

自动将git版本(git describe)添加到Eclipse(STM32CubeIDE)中的C代码字符串

c语言如何将字符串转为二进制的整型然后保存到整型数组里?

C语言中如何将小数或整数和字符串合二为一

如何将字符串和整数分隔到列表中[关闭]

如何将字符串数组附加到共享内存? C

如何将字符串从文件复制到 C 中的链表?