现在,我所拥有的是:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char fname[100];
FILE* fp;
memset(fname, 0, 100);
/* ask user for the name of the file */
printf("enter file name: ");
gets(fname);
fp = fopen(fname, "w");
/* Checks if the file us unable to be opened, then it shows the
error message */
if (fp == NULL)
printf("\nError, Unable to open the file for reading\n");
else
printf("hello");
getch();
}
这个功能很好,但有没有办法可以强制它保存为.txt或.data或其他东西?现在它只是保存为你输入的名称没有扩展名。除了要求用户输入名称和扩展名之外,我无法想出一种方法。我的意思是,它仍然适用于阅读/写作目的,我只是认为扩展会很好。
答案 0 :(得分:1)
扩展我的评论:
strcat(fname, ".txt");
答案 1 :(得分:0)
假设目标足够大以存储新文本,strcat
函数可用于将文本附加到目标缓冲区。
char *strcat(char *destination, const char *source);
source
是您要附加的新文本(在您的情况下是扩展名),destination
是新文本的添加位置。如果destination
不够大,则行为未定义。
还可以使用snprintf
函数附加文本,这样更安全,因为它需要一个大小参数。
答案 2 :(得分:0)
我明白了。感谢我的一位朋友,他今天早些时候向我展示了这件事。
int main()
{
FILE *Fileptr;
char filename[50];
char file[50];
int c;
printf("What do you want to name your file?");
scanf("%s", filename);
sprintf(file, "%s.txt", filename);
Fileptr = fopen(file, "w");
fprintf(Fileptr, "Data goes here");
fclose(Fileptr);
return 0;
}
比我以前做得容易得多。