#include <stdio.h>
#include <alloc.h>
FILE *string;
int j=0;
int main(void)
{
for (j=0;j<10;j++)
{
string = fopen(("C:\\playlist%d.txt",j+1),"w+t");
fclose(string);
}
return 0;
}
答案 0 :(得分:2)
您需要使用数组来使用sprintf
创建文件名,并在调用fopen
时使用该数组。
int main(void)
{
char filename[100]; // Make the array large enough
for (j=0;j<10;j++)
{
sprintf(filename,"C:\\playlist%d.txt",j+1);
string = fopen(filename,"w+t");
fclose(string);
}
return 0;
}
答案 1 :(得分:1)
编辑此问题最初包含 C ++ 标记。
FILE* string; ... string = fopen(("C:\\playlist%d.txt",j+1),"w+t");
似乎你想构建一个嵌入了整数值的文件名字符串。
(顺便说一下:选择“string”作为FILE*
变量的名称不是很有帮助,我建议使用更有意义的东西......)
由于此问题标有[c++]
,您可能希望使用方便的字符串类及其重载运算符和 std::to_string()
辅助函数进行转换一个整数到std::string
,例如
std::string fileName = "C:\\playlist";
fileName += std::to_string(j+1);
filename += ".txt";
FILE* file = fopen(filename.c_str(), /* other params */);
PS 除了C FILE*
之外,在C ++中还有可用于文件管理的特定文件流类,如std::fstream
和相关的
答案 2 :(得分:1)
编辑:这个问题最初是用C ++标记的
由于此标记为C ++,您可以使用std::string
和std::fstream
int main()
{
std::string filename = "C:\\playlist";
std::fstream file;
for (int i = 0; i < 10; i++)
{
file.open(filename + to_string(i) + ".txt");
// do stuff
file.close();
}
cin.get();
return 0;
}