【发布时间】:2012-08-20 15:55:28
【问题描述】:
在 C/C++ 程序中,我这样做是否正确:
int i;
FILE **files = malloc(numFiles * sizeof(FILE *));
std::string file("foo"), ext(".bar");
char *num[10];
for (i = 0; i < numFiles; i++) {
files[i] = fopen((file + itoa(i, num, 10) + ext).c_str(), "w");
}
这基本上就是我正在做的事情,但我没有将任何内容写入文件。它们是空白的。
编辑
我已经解决了我的问题。我以为我可能在这里做错了什么,但结果却在其他地方。无论如何,感谢您的回复。
【问题讨论】:
-
是 C 还是 C++?如果您已经在使用
std::string,为什么不用其他 C++ 功能来代替原始数组。 -
嗯,你展示的代码中没有输出操作...
-
这显然是正确的,但丑陋的 C++(不是 C 或 C/C++)片段。你希望它做什么?
-
根据我的经验,不管你怎么写,C++ 都很难看。我不是一个超级粉丝。
-
@Luke:如果你试图将它与这样的 C 习语混合起来,那肯定是丑陋的。在我看来,如果你坚持使用本地习语,它可能会相当优雅(如果偶尔有点扭曲)。