2 froginforg FrogInForg 于 2014.11.26 22:58 提问

写一个文本编辑器的问题

自己在写一个文本编辑器,读取文件的函数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
devmiao   Ds   Rxr 2014.11.26 23:02

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

happyparrot
happyparrot   Ds   Rxr 2014.11.27 08:03

你说的问题到底是什么呢?你不描述,让别人猜啊

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
python2.7练习 写一个简单的文本编辑器
# -*- coding: utf-8 -*- import wx, os, sys class MenuBarWindow(wx.Frame):     def __init__(self, parent, title):                  # A "-1" in the size parameter instructs wxWidgets to use the d
python实现的文本编辑器
wxpython实现的文本编辑器 效果如下: 主要功能: 1.编辑保存文本,打开修改文本 2.常用快捷键,复制,粘贴,全选等 3.支持撤销功能 4.支持弹出式菜单 代码如下: #encoding=utf-8 import wx import os class MyFrame(wx.Frame): def __init__(self):
Java编写的文本编辑器(菜鸟作品)
//这是主窗体文件 Wordwin.javaimport javax.swing.*; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import java.awt.*; import java.io.*; import java.awt.event.*; public clas
我做的一个java简单文本编辑器代码
下面是我的一个简单java程序代码,可以练习下。有的功能没弄完,有兴趣的可以完成他,对学java 很有帮助。package swing;import java.awt.*;import javax.swing.*;import java.awt.event.*;import java.io.File;import java.io.FileInputStream;import java.io.Fil
C#编写一个简单的文本编辑器 .
首先,打开你的开发工具Microsoft visual studio 2005。文件——》新建项目——》项目类型选择visualc#,模板选择windows 应用程序,到此我们已经创建好一个window窗体了!
MFC编写一个建议的文本编辑器
1.使用ANSI字符集 2.打开,保存,退出按钮的ID非别为IDopen,IDsave,IDcancel 3.为文本编辑框创建变量m_Edit,类别为Value,变量类型为CString。 --------------------打开按钮的处理函数 void CeditDlg::OnBnClickedopen() { // TODO: 在此添加控件通知处理程序代码 int i
Java实现简易的文本编辑器
需求分析: 获得文本名称 实现尾部追加功能 实现覆盖式添加数据 删除数据 获取光标位置 在特定光标位置处添加数据 查找特定字符串在主串中第一次出现的位置 统计文本文件内出现的数字,汉字,英文字母,特殊字符的个数,及总的字符个数开发环境: windows7 + Eclipse luna + WindowsBuilder插件 代码实现:import java.awt.EventQueue; impor
JAVA写文本编辑器(一)
        作业题,花了整整两天终于搞出来了,今天给大家整理一下思路。        这里用swing ,awt写的。        我们大概要做成一个电脑的记事本那样的一个编辑器。可以调整字体,字号,颜色。能够打开、保存文件,新建窗口,点击退出,还有一个关于介绍的窗口。整体看起来功能不是很多,只要一部分一部分的去完成就很好办了。        关键词:JAVA文本编辑器,        思路...
用JAVA编写一个简单的编辑器
在控制台中输入: 请输入文件名: HelloWorld.java 请输入文件内容: public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld!"); } } Q 实现效果为:在D盘创建了一个Helloworld.java文件。 二、代码 pa
C#WPF写的文本编辑器
简单的打开复制粘贴剪切保存,用了ToolBar控件