命名你自己的文件

Name your own file

fopen() 可以命名您自己的文件吗?例如

printf("Enter the name of the file you want to create");
scanf("%s", &name);

然后我希望扫描的名称是我要创建的文件的名称。有什么办法吗?我知道你可以

fp = fopen("name of file.txt","w or a")

但是如果用户询问文件本身的名称怎么办?

使用变量作为参数 fopen()

fgets(name, sizeof name, stdin);
name[strlen(name) - 1] = 0; // remove ENTER from name
fp = fopen(name, "w");
// error checking ommited for brevity

如果要为输入添加“.txt”扩展名,例如使用strcat()

fgets(name, sizeof name - 4, stdin); // save space for extension (thanks Cool Guy)
name[strlen(name) - 1] = 0; // remove ENTER from name
strcat(name, ".txt"); // add extension
fp = fopen(name, "w");
// error checking ommited for brevity