我正在尝试根据与文件名关联的数字来增加文件的名称。如果我将变量postFix变为int类型,则会产生错误(可以理解),因为我无法将int连接到字符串类型。
在这种情况下,如何增加字符串变量?
for (int i = 0; i <= 10; i++)
{
std::string postFix = "1"; // int postFix = 1 gives an error
std::cout << (std::string("Image" + postFix + std::string(".png")));
}
答案 0 :(得分:2)
您可以使用std::to_string
从std::string
值创建int
。
for (int i = 0; i <= 10; i++)
{
std::cout << "Image" + std::to_string(i+1) + ".png";
}
虽然在这种情况下你也可以使用流operator<<
for (int i = 0; i <= 10; i++)
{
std::cout << "Image" << i+1 << ".png";
}
答案 1 :(得分:2)
你没有;您使用整数变量,并使用它的字符串表示来构建文件名:std::to_string(n)
答案 2 :(得分:1)
int value = atoi(postFix.c_str());
value++;
postFix = std::to_string(value);
答案 3 :(得分:1)
使用std::to_string
for (int i = 0; i <= 10; i++)
{
int postFix = 1;
std::cout << (std::string("Image" + std::to_string(postFix) + std::string(".png")));
}
答案 4 :(得分:1)
简单地写
std::cout << std::string("Image" ) + std::to_string( i + 1 ) + ".png";
甚至喜欢
std::cout << "Image" + std::to_string( i + 1 ) + ".png";
或者您可以先定义一个字符串
std :; string =&#34; Image&#34; + std :: to_string(i + 1)+&#34; .png&#34 ;;
然后输出
std :: cout&lt;&lt; S;
答案 5 :(得分:1)
看起来你的情况比必要的要复杂得多。
for (int i = 1; i <= 10; i++) {
std::cout << "Image" << i << ".png";
}
或
for (int i = 1; i <= 10; i++) {
std::string filename = "Image" + std::to_string(i) + ".png";
// do something with filename
}
to_string(int)
出现在C ++ 11中。
答案 6 :(得分:0)
增加int
&#39;数字&#39;如你所愿,然后将其转换为字符串,最后用文件名(或者你想要的地方)附加它。
需要标题:
#include <iomanip>
#include <locale>
#include <sstream>
#include <string> // this should be already included in <sstream>
并转换&#39;数字&#39;到&#39; String&#39;执行以下操作:
int Number = 123; // number to be converted to a string
string Result; // string which will contain the result
ostringstream convert; // stream used for the conversion
convert << Number; // insert the textual representation of 'Number' in the characters in the stream
Result = convert.str(); // set 'Result' to the contents of the stream
// 'Result' now is equal to "123"
此操作可以缩短为一行:
int Number = 123;
string String = static_cast<ostringstream*>( &(ostringstream() << Number) )->str();
摘自here。