问题描述
- 写一个文本编辑器的问题
- 自己在写一个文本编辑器,读取文件的函数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 = 0flags = 1;
char filename[30];//save the name od dom
printf(""输入文件名,例如格式[c:wb.txt]:"");/输入文件名格式*/
scanf(""%s""filename);//输入文件名
fp=fopen(filenamer"");
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);
}
解决方案
编写一个文本编辑器最简单的方式(使用VC++,无需编写任何代码,只要鼠标操作即可完成):
新建一个MFC Win32程序,然后选择SDI,然后其余默认,最后视图从CEditView,而不是从CView继承,再点完成。就写好了,至于源代码,自己可以慢慢研究。这个编辑器已经支持新建、打开、保存、剪切、复制、粘贴、查找、替换等功能。
解决方案二:
你说的问题到底是什么呢?你不描述,让别人猜啊