永发信息网

C语言程序问题 高手帮帮忙

答案:1  悬赏:70  手机版
解决时间 2021-05-13 22:57
自己做了个自动机的程序 C的 不过运行好像有问题 自己搞不清楚 高手给看看 尤其是调用 scanner 后 那个if(isdigit(ch))好像不起作用 比如 再C盘的123.txt里输入 .55. 还会识别为1 应该是错误 一步一步调试的时候 到if(isdigit(ch))遇到‘.’还会执行 实在是郁闷 拜托大家了



#include<stdio.h>
#include<ctype.h>
#define N 1
#define ADD 2
#define DEC 3
#define MUL 4
#define DIV 5
#define L 6
#define R 7


char ch;

extern void out(int b)
{
printf("%d",b);
return;
}
extern report_error(void)
{
printf("Error!");
}


void Loop(FILE*fp)
{

ch=fgetc(fp);
if(isdigit(ch))
{

ch=fgetc(fp);
while(isdigit(ch))
{
ch=fgetc(fp);
}
out(N);
}

else if(ch=='+'|'-')
{
ch=fgetc(fp);
if(isdigit(ch))
{
ch=fgetc(fp);
while(isdigit(ch))
{
ch=fgetc(fp);
}
out(N);
}
else report_error();
}
else report_error();
}


void scanner(FILE*fp)
{
ch=fgetc(fp);
if(isdigit(ch))
{
ch=fgetc(fp);
while(isdigit(ch))
{
ch=fgetc(fp);
}


if(ch=='E')
{
Loop(fp);
}

else if(ch=='.')
{
ch=fgetc(fp);
while(isdigit(ch))
{
ch=fgetc(fp);
}
if(ch=='E')
{
Loop(fp);
}
else if(ch==EOF)
{
out(N);
}
}
else if(ch==EOF)
{
out(N);
}
else report_error();
}

else if(ch=='.')
{
ch=fgetc(fp);
if(isdigit(ch))
{
ch=fgetc(fp);
while(isdigit(ch))
{
ch=fgetc(fp);
}
if(ch=='E')
{
Loop(fp);
}
else if(ch==EOF)
{
out(N);
}
else report_error();
}
else report_error();
}
else report_error();
}




void main ()
{
FILE*fp;
fp=fopen("c:\\123.txt","r");
ch=fgetc(fp);
scanner(fp);
while(ch!=EOF)
{
scanner(fp);
}
}
最佳答案
你好哦楼主~

很高兴看到你的问题。
但是又很遗憾到现在还没有人回答你的问题。也可能你现在已经在别的地方找到了答案,那就得恭喜你啦。
可能是你问的问题有些专业了,没人会。或者别人没有遇到或者接触过你的问题,所以帮不了你。建议你去问题的相关论坛去求助,那里的人通常比较多,也会比较热心,能快点帮你解决问题。

希望我的回答能够帮到你!
祝你好运。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
QQ农场无法刷新
为什么CF体验服今天又不发CF点啊
怎么样心情可以变好呢?
汽车发动机上空气压力传感器的作用什么
战地之王普通玩家能玩了吗??
和六有关的口号霸气,说一个关于“第六组的”
荆州区天龙家常菜馆(理想家园北)在什么地方啊
绵阳哪里有卖汽车皮套的,稍微好一点的?
今晚快乐男生谁第一
安乡县新世纪夜市这个地址在什么地方,我要去
DNF中 哪里的刷图容易暴残杀者啊???
为什么QQ空间的游戏基地有些人分数都是999999
恋恋不舍的反近义词,类似恋恋不舍的成语
黄陂区李记面馆(巨龙大道)我想知道这个在什么
10.11.月的动漫新翻?
推荐资讯
我的准考证号是1218040028.能帮我查一查高一
背叛的背后,男人受伤的多还是女人受伤害的多
最近什么音乐好听,什么类型的都行,只要好听
棒棒鱼怎么做好吃,烤箱烤羊小腿的做法大全
海盗路飞的漫画书不更新了吗
请问这个怎么弄啊??
什么是一体机电脑,电脑一体机是什么意思?
有没有懂手机的朋友
空间留言版显示还有100条的留言,可是无法显
洪山区洪山贺君君西医内科诊所地址在哪,我要
武昌区雅戈尔(松竹路)在哪里啊,我有事要去这
7个耳洞代表着什么意义。
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?