| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 326 人关注过本帖
标题:一个简单的文件读取入栈的问题
取消只看楼主 加入收藏
Maps
Rank: 2
等 级:论坛游民
帖 子:16
专家分:10
注 册:2015-3-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:1 
一个简单的文件读取入栈的问题
#include"stdio.h"
#include"stdlib.h"
#define  MAXSIZE 30
//就是读入一个文档中的符号 判断有没有不是成对出现的。如{} 这样的就是正确地
//如果不是则报错。
typedef char  element;
typedef struct
{
    element date[MAXSIZE];
    int top;
}SeqStack;

SeqStack *InitStack(SeqStack *S)//初始化栈
{
    S=(SeqStack *)malloc(sizeof(SeqStack));
    S->top=-1;
    return S;
}

SeqStack *input_stack(SeqStack *S,char cp)//从文档中读取的字符输入栈中
{
    S->top++;
    S->date[S->top]=cp;

}
SeqStack *output_stack(SeqStack *S)//出栈
{
    S->top--;

}

int  judge_symble(SeqStack *S,char cp)//判断传递过来的是什么
//如果是符号的话就入栈  对应的话就出栈
{
    switch (cp){

    case '{' :
        input_stack(S,cp);
        break;
    case '}' :
        output_stack(S);
        break;
    }
}

int file_read(SeqStack *S)//文件读取
{
    char   cp;
    int i=0;
    FILE *fp;

    S=InitStack(S);
    if((fp=fopen("test.txt","r"))==NULL)
    {
        printf("文件打开失败!");
    }
    else
    {

        while((cp=fgetc(fp))!=EOF)//每读入一个字符都入栈
        {
            judge_symble(S,cp);
        }

    }
    fclose(fp);
}


int main(void)
{
    SeqStack *S;
    file_read(S);

    if((S->top)%2==0)//成对出现就是对的
    {
        printf("没有错误");
    }
    else
    {
        printf("有误");
    }
}


  就是一步步调试入栈出栈都能进行,但是就是不运行到最后直接停止了,找不出是哪里错误啊,希望大神帮下忙看看,谢了
搜索更多相关主题的帖子: element include return 
2015-06-05 18:23
Maps
Rank: 2
等 级:论坛游民
帖 子:16
专家分:10
注 册:2015-3-8
收藏
得分:0 
回复 2楼 诸葛欧阳
这个我在 file_read(SeqStack *S) 这个函数里面有申请啊

看到了编程大海的一角,我还在努力的寻找方向,
2015-06-05 19:34
快速回复:一个简单的文件读取入栈的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022322 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved