自己在写一个文本编辑器,读取文件的函数open()和打印view()存在问题,但是找不到错误啊
/*文本编辑器editor源代码*/
//预处理开始
#include
#include
#include
#include
typedef struct node
{
char ch;
struct node *next;
} node;
typedef struct Hnode
{
node next;
struct Hnode * next1;
} Hnode;
void open(Hnode * Hp)
{
FILE fp;
Hnode q11,*q22;
node *p11,*p22,*hp;
char temp;
int count = 0,flags = 1;
char filename[30];//save the name od dom
printf("输入文件名,例如格式[c:\wb.txt]:");/输入文件名格式*/
scanf("%s",filename);//输入文件名
fp=fopen(filename,"r");
if(fp==NULL)
{
printf("Open file error!\n");
getch();
exit(0);
}
q11 = Hp;
while(!feof(fp))
{
count=0;
flags=1;
q22=(Hnode *)malloc(sizeof(Hnode));
p11=(node *)malloc(sizeof(node));
while((temp=fgetc(fp))!=10&&count<=76&&!feof(fp))//76 is the max
{
p22=(node *)malloc(sizeof(node));
if(flags==1)
{
hp=p22;
flags=0;
}
p22->ch=temp;
p22->next=NULL;
p11->next=p22;
p11=p22;
count++;
}
if(temp==10)
{
p22=(node *)malloc(sizeof(node));
p22->ch=13;
p22->next=NULL;
p11->next=p22;
p11=p22;
}
if(!feof(fp))
{
q22->next=hp;
q22->next1=NULL;
q11->next1=q22;
q11=q22;
}
}
fclose(fp);
Hp=Hp->next1;
return ;
}
void view(Hnode q)
{
node *p;
do
{
p=q->next;
while(p!=NULL&&p->ch>=32&&p->chch!=13&&p->ch!=-1)
{
putch(p->ch);
p=p->next;
}
q=q->next1;
if((p->ch==13||p->ch==-1)&&q!=NULL)
{
printf("\n");
}
}
while(q!=NULL);
}
//函数完成
int main()
{
Hnode p;
open(p);
//view(p);
}