/*我是个beginner,我想做一个有建立文件和删除文件功能的程序,但是出现了错误,程序结果和预想的不一样,请帮忙看看啊,谢*/
/*能不能帮我调一下啊*/
#include<stdio.h>
#include<io.h>
struct students{ /*定义一个学生情况的结构体*/
char name[6]; /*学生姓名*/
char sex[2]; /*学生性别*/
char phone[11]; /*学生电话*/
}stu[100]; /*学生结构体变量*/
int del(fname_del); /*声明删除文件函数*/
void main()
{
FILE *fp_new; /*定义新建文件指针*/
FILE *fp_del; /*定义被删除文件指针*/
char fname_new[20]; /*定义新建文件名变量*/
char fname_del[20]; /*定义被删除文件名变量*/
int i; /*过程控制量*/
int j; /*过程控制量*/
puts("请选择你想执行的操作:\n1 删除文件\n2 其它");
scanf("%d",&i);
if(i==1)
{
puts("请输入你想删除的文件名:");
gets(fname_del);
del(fname_del);
}
printf("i=%d",i); /*检测i的值*/
getchar(); /*暂停便于检测函数执行情况*/
printf("请输入新文件名:\n"); /*提示用户输入新文件名*/
gets(fname_new); /*接收用户输入的新文件名*/
if((fp_new=fopen(fname_new,"a+"))==NULL) /* 如果打开文件指针返回NULL,今天我在这里出错了,我在这里提醒我自己!注意:fopen(fname_new,"w+") 中的文件名用的是变量,因此不用双引号扩起来!*/
{
printf("建立文件出错!\n"); /* 提示操作结果*/
exit(0); /*退出*/
}
printf("请输入学生姓名:\n"); /*提示用户输入信息*/
scanf("%s",&stu[0].name); /*接收用户输入信息*/
printf("%s\n",stu[0].name); /*输出用户信息*/
fputs(stu[0].name,fp_new); /*存入用户信息*/
fputc("\n",fp_new); /*写入回车符*/
fclose(fp_new); /*关闭文件*/
}
int del(char *wjp) /*定义删除文件函数*/
{
int status; /*这以后的我不懂了,请高手指教啊*/
{
unlink(wjp);
status = access(wjp,0);
if (status == 0)
printf("F文件已删除!\n");
else
printf("文件未找到!\n");
return 0;
}
}
/* 函数备忘录:
fputc();
fputs();
fprintf();
fwrite();
函数名: unlink
功 能: 删掉一个文件
用 法: int unlink(char *filename);
程序例:
#include <stdio.h>
#include <io.h>
int main(void)
{
FILE *fp = fopen("junk.jnk","w");
int status;
fprintf(fp,"junk");
status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");
fclose(fp);
unlink("junk.jnk");
status = access("junk.jnk",0);
if (status == 0)
printf("File exists\n");
else
printf("File doesn't exist\n");
return 0;
}
*/