【发布时间】:2011-09-27 05:13:39
【问题描述】:
必须有一个简单的方法来做到这一点......
// C# code
for (int i = 0; i < 20; i++)
doSomething(i.ToString() + "_file.bmp");
我正在尝试在 C++ 中执行此操作,但事实证明,最简单的事情在该语言中是最难完成的。主要是因为有一个问题:我被限制在一个库中,它只接受char*'s 作为函数的参数,这最终会出现在这个函数中,所以我几乎一直在玩char 数组。这是我目前所拥有的:
char* path[12];
for(int i = 0; i < 20; i++)
{
sprintf(path[0],"%i_Card.bmp",i);
cards[i] = new Card(i,path[0]);
}
问题是,这种方法最终会得到一个又大又长的无用字符串。
我必须透露这是为了学校作业,但回答这个问题不会决定我的成绩,它只会让应用程序的某个方面更容易一些。
【问题讨论】:
-
你不一定会被
char*卡住——std::string有一个方法c_str可以返回一个具有相同内容的char* -
呃,不。
c_str返回const char*。很不一样;如果图书馆试图写信给char*,你就会遇到问题。
标签: c++ arrays string for-loop