【发布时间】:2014-10-31 22:24:32
【问题描述】:
我正在尝试创建一个为我创建文件夹并使用数字组合命名它们的函数。这是我为函数编写的代码:
void folderMaker(int xCount, int yCount)
{
stringstream ssObject;
string xString;
string yString;
for (int x = 0; x<xCount; x++)
{
for (int y = 0; y<yCount; y++)
{
ssObject << x;
xString = ssObject.str();
ssObject << y;
yString = ssObject.str();
string nameAndLocation = "C:\\User\\DestinationFolder\\" + xString + "and" + yString;
CreateDirectory (nameAndLocation.c_str(), NULL);
}
}
}
我想让两个“for”循环为 x 和 y 变量赋予特定的值。从那里我想使用名称中包含的这两个变量创建的新文件夹的名称。出于这个原因,我使用了我创建的 ssObject。结果是我确实创建了我想要的文件夹,但是名称不是我想要的名称。例如,如果 xCount = 3 和 yCount = 1,我会得到以下文件夹名称:
第一个文件夹的名称:x0andy00
第二个文件夹的名称:x001andy0010
第三个文件夹名称:x00102andy001020
为什么我得到这些名称(而不是 xCount = 3 和 yCount = 1 的情况下的 x0andy0、x1andy0 和 x2andy0)?以及如何获得我想要的正确结果?
【问题讨论】:
-
设置两次 xString 而从不设置 yString 正常吗?
-
ssObject永远不会清除 ..您的代码也不使用ystring -
@DOOM 我对重用 xString 的态度不好,这是我在 stackoverflow 中重新输入代码时的错误。如何清除 ssObject DOOM?
-
但是为什么要创建 3 个中间变量来格式化 fodler 名称,而您只能使用 stringstream 进行整个格式化?
-
@Christophe 我尝试使用字符串流来执行此操作,但是如果不先将 x 和 y 整数变量更改为字符串,则代码不允许我在 ssObject 中创建字符串。这就是为什么我必须声明 xString 和 yString。我这样做是否正确?
标签: c++ string directory stringstream