忆湘缘892 2022-05-21 21:11 采纳率: 88.9%
浏览 27
已结题

c语言读取txt文件用栈匹配括号的问题。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define OK 1
#define ERROR 0
struct StackNode
{
char data;
struct StackNode *next;
}StackNode;
int main()
{
FILE *fp=NULL;
struct StackNode *s=NULL;
int flag=1;
char ch;
fp=fopen("fname.txt","r");
ch=fgetc(fp);
while(!feof(fp)&&flag)
{
switch(ch)
{
case '['||'(':
Push(s,ch);
break;
case ')':
if(!s&&GetTop(s)=='(')Pop(s);
else flag=0;
break;
case ']':
if(!s&&GetTop(s)=='[')Pop(s);
else flag=0;
break;
}
ch=fgetc(fp);
}
fclose(fp);
return 0;
}
int Push(struct StackNode *s,char ch)
{
struct StackNode p;
p=(struct StackNode
)malloc(sizeof(struct StackNode));
p->data=ch;
p->next=s;
s=p;
return OK;
}
int Pop(struct StackNode *s)
{
struct StackNode *p;
if(s==NULL)
return ERROR;
p=s;
s=s->next;
free (p);
return OK;
}
char GetTop(struct StackNode *s)
{
if(s!=NULL)
return s->data;
}
报错问题如下,求改进

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 5月29日
    • 创建了问题 5月21日

    悬赏问题

    • ¥20 有关区间dp的问题求解
    • ¥15 多电路系统共用电源的串扰问题
    • ¥15 slam rangenet++配置
    • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
    • ¥15 对于相关问题的求解与代码
    • ¥15 ubuntu子系统密码忘记
    • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
    • ¥15 保护模式-系统加载-段寄存器
    • ¥15 电脑桌面设定一个区域禁止鼠标操作
    • ¥15 求NPF226060磁芯的详细资料