int save(int *file,int K)
{
int i;
char *name;
FILE *fp;
name=(char *)malloc(256);
puts("type file name\n");
getchar();
fgets(name,256,stdin);
if((fp=fopen(name,"w"))==NULL)
{
puts("file can't be opened\n");
return 0;
}
fprintf(fp,"%d\n",K);
for(i=0; i<K; i++)
{
fprintf(fp,"%d\n",*(file+i));
}
fclose(fp);
return 1;
}
为什么这不起作用但是当我使用fopen("text.txt","w")
时一切正常?我该如何解决这个问题?
答案 0 :(得分:3)
这是因为fgets
将换行符'\n'
附加到字符串中。你需要先关闭它。
if (isspace(name[strlen(name)-1]))
name[strlen(name)-1] = '\0';
答案 1 :(得分:1)
打印name
并检查它是否真的相同。
我的猜测:它包含一个换行符。
如果是这种情况,您可以将其替换为\0
:
name[strlen(name)-1]='\0';