恳请各位大哥进来看看,小弟感激不尽!!!
FILE *open1(struct point *head,char name[])//打开文件
{
struct point *pnew,*p;
FILE *fp;
char qq[100];
if(head==NULL)
{
printf("no enough memory!\n");
return 0;
}
p=head;
head->next=NULL;
fp=fopen(name,"r");
if(fp==NULL)
{
fp=fopen(name,"w");
if(fp==NULL)
{
printf("文件无法创建!\n");
return 0;
}
printf("创建成功!\n");
return fp;
}
else
{
if(fp==NULL)
{
printf("文件无法打开!\n");
return 0;
}
printf("打开成功!\n");
while(!feof(fp))
{
pnew=(struct point*)malloc(sizeof(struct point));
pnew->next=p->next;
p->next=pnew;
p=pnew;
fgets(pnew->s,100,fp);
}
return fp;
}
}
void display(struct point *head)//打印到屏幕上
{
struct point *p;
if(head==NULL)
{
printf("请先打开文件!\n");
return;
}
if(head->next==NULL)
{
printf("文件内容为空!\n");
return;
}
printf("文件内容为:\n");
for(p=head->next;p!=NULL;p=p->next)
printf("%s",p->s);
}
void main()
{
struct point *head=NULL;
int i;
FILE *fp;
char name[20];
while(i!=0)
{
printf("请选择:1.打开文件(新或旧) 2.显示文件内容\n");
printf(" 3.插入行 4.删除行 5.拷贝行 6.修改行\n");
printf(" 7.查找字符串 8.替换字符串\n");
printf(" 9.存盘退出 0.放弃编辑\n");
printf("请输入选择:");
scanf("%d",&i);
if(i==1)
{
head=(struct point*)malloc(sizeof(struct point));
printf("请输入要打开的文件名:");
scanf("%s",name);getchar();
fp=open1(head,name);
}
}
为什么在文件存在时打开文件,在打印文件时,在尾部会出现乱码?
[解决办法]
没有结束符导致的