[问题] 请问一下这段程式的bug

楼主: winbill84063 (有妹妹真好)   2015-05-01 21:07:38
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main () {
char line[4];
char label[7],opcode[7],operand[8];
//char startAddr[5];
int LOCCTR = 0;
char comment[50];
char checkOP[7];
int count = 0;
FILE *input,*inter,*output,*OP;
input = fopen("input.txt","r");
inter = fopen("intermediate.txt","w");
OP = fopen("OPTAB.txt","r");
if(input == NULL){
printf("Can't read input\n");
}
else{
if(fscanf(input,"%s %s %s %s",line,label,opcode,operand)!=EOF){ //处理
第一行的部分
if(!strcmp(opcode,"START")){
fprintf(inter,"%s %04d %s %s %s\n",line,LOCCTR,label,opcode,ope
rand);//将第一阶段结果写入中间档案
fscanf(input,"%s %s %s %s",line,label,opcode,operand); //读取下一行
}
else{
printf("failed\n");
}
}
while(strcmp(opcode,"END")){
if(strcmp(label,".")){ //若不是叙述就执行
while(fscanf(OP,"%s",checkOP)!=EOF){ //
作者: tpps86511 (ㄐㄐ善人)   2015-05-01 21:13:00
&
作者: TobyH4cker (Toby (我要当好人))   2015-05-01 21:51:00
不是&的问题要不试着debug看看
作者: johnjohnlin (嗯?)   2015-05-01 22:24:00
Google the return value of fscanf...
楼主: winbill84063 (有妹妹真好)   2015-05-02 13:42:00
不太懂google之后 要看哪些东西
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-05-02 15:00:00
你为什么会用这种方法判断end of file?
楼主: winbill84063 (有妹妹真好)   2015-05-02 20:01:00
这样不好吗?
作者: TobyH4cker (Toby (我要当好人))   2015-05-02 21:46:00
叫你debug了,bug还要我找?opcode从来没变,当然出不去循环
作者: MOONRAKER (㊣牛鹤鳗毛人)   2015-05-02 21:55:00
难怪google之后还是不知道要看什么。
作者: dirkc (3781615)   2015-05-02 23:16:00
楼上已经有提示关键了.基于尊重,通常贴code会排版或用网页
作者: overhead (overhead)   2015-05-07 22:13:00
你想想要跟eof比较的是什么?是fscanf的回传值还是op这个变量?那该是什么东西==?

Links booklink

Contact Us: admin [ a t ] ucptt.com