[問題] 請問一下這段程式的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