FrogInForg 2014-11-26 14:58 采纳率: 0%
浏览 1600

写一个文本编辑器的问题

自己在写一个文本编辑器,读取文件的函数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);
}

  • 写回答

2条回答

  • devmiao 2014-11-26 15:02
    关注

    编写一个文本编辑器最简单的方式(使用VC++,无需编写任何代码,只要鼠标操作即可完成):
    新建一个MFC Win32程序,然后选择SDI,然后其余默认,最后视图从CEditView,而不是从CView继承,再点完成。就写好了,至于源代码,自己可以慢慢研究。这个编辑器已经支持新建、打开、保存、剪切、复制、粘贴、查找、替换等功能。

    评论

报告相同问题?

悬赏问题

  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3