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
来帮助您了解从int
到string
的转换。
【讨论】:
以上是关于c ++:如何将整数添加到字符串的主要内容,如果未能解决你的问题,请参考以下文章