请我想修改:
f = fopen("/home/file.txt", "w");
有以下结果:
f = fopen("/home/%s.txt", "w",argv[1]);
您对 fopen 中的选项有什么想法吗?
谢谢你。
请我想修改:
f = fopen("/home/file.txt", "w");
有以下结果:
f = fopen("/home/%s.txt", "w",argv[1]);
您对 fopen 中的选项有什么想法吗?
谢谢你。
我建议这样做:
char filename[MAX_PATH];
snprintf(filename, sizeof(filename), "/home/%s.txt", argv[1]);
f = fopen(filename, "w");
修改fopen
不是一项简单的任务,尽管您可以使用上述操作编写一个包装器。
只需将调用包装fopen
在一个函数中:
FILE* my_fopen(char filename[]) {
static char buffer[MAXIMUM_SIZE];
snprintf(buffer, MAXIMUM_SIZE, "/home/%s.txt", filename);
return fopen(buffer, "w");
}
那么你所要做的就是打电话my_fopen("myfile.txt")
。
fopen()
不采用格式字符串,因此您必须事先构造它:
char buf[MAX_PATH];
snprintf(buf, sizeof(buf), "/home/%s.txt", argv[1]);
FILE *f = fopen(buf, "w");