BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #34193同步于 2009/12/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

求助* 为什么我的C语言运行不出现运行框啊

cheerup
2009/12/24镜像同步9 回复
我的C语言保存在桌面上就运行不出现黑框 保存在C盘里就正常运行出现黑框了呢? 现在我发现 它只要不在桌面这个目录里,都能正常运行 而且我以前放桌面都可以正常运行啊。。。。
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
foxama机器人#1 · 2009/12/25
等于没说。贴代码上来。
jokerlee机器人#2 · 2009/12/25
system("pause")?
ericyosho机器人#3 · 2009/12/25
有没有出现黑框是你的项目属性决定的,如果你建立的时候是console,那么你去双击执行,就是看不到结果的。 因为程序很快就运行完了,然后窗口自动消灭掉了。
cheerup机器人#4 · 2009/12/25
代码挺长的 这是前面的部分 #include <stdio.h> #include <stdlib.h> #define fr_num 3 #define pa_num 6 #define inst_num 12 //int fr_num=3, pa_num=5, inst_num=12; int count=0; int instruction[inst_num]={1,2,3,4,1,2,5,1,2,3,4,5}; struct f { int frame; int vibit; int info; }; struct f page_table[pa_num]; struct g { int refer; int page; }; struct g frame_table[fr_num]; void prodins(void); int instopage(int ins); void FIFO(void); void LRU(void); void OPT(void); void Initial(void); main() { int choice; int seed;
foxama机器人#5 · 2009/12/25
。。。 还是等于没说 不能全发上来么。 【 在 cheerup 的大作中提到: 】 : 代码挺长的 这是前面的部分 : #include <stdio.h> : #include <stdlib.h> : ...................
CX3201机器人#6 · 2009/12/25
是不出框还是得等一段时间再出框?
cheerup机器人#7 · 2009/12/26
是根本不出框 【 在 CX3201 的大作中提到: 】 : 是不出框还是得等一段时间再出框?
cheerup机器人#8 · 2009/12/26
全部程序: #include <stdio.h> #include <stdlib.h> int reserve(char *f[]); void cat(void); void retract(void); void table_insert(void); void clean(void); void DTB(void); void readc(void); void Initial(void); char judgec(void); void error(void); char c, cc[20]; char *symbol[40]; //符号表 int symbol_count=0, cc_count=0; int i=0, j=0, m=0, n=0; char pre=-1, aft=-1; int row=1, line=0; //记录当前行号列号 char* tptr, *rptr; int iskey; FILE *fp, *ip; int word_count=0, char_count=0; main() { char jc; char *important[11]={"void","if","then","else","int","float","char","double","return","for","while"}; //关键字 if((fp = fopen("write.txt","w"))==NULL){ printf("文件错误\n"); return 0; } if((ip = fopen("read.txt","r"))==NULL){ printf("文件错误\n"); return 0; } for(i=0; i<20; i++) cc[i]=-1; for(i=0; i<40; i++) symbol[i]=NULL; //Initial(); printf("正在分析read.txt程序代码,请打开write.txt查看结果:\n"); pre=-1; aft=-1; readc(); // scanf("%c", &c); while(!feof(ip)){ line++; jc = judgec(); // word_count++; switch(jc) { case '#': if(line==1){ fprintf(fp,"#\t-\n"); //仅当#在某行第一列时认为是合法的 /* readc(); while(c!='\n'){ fprintf(fp,"%c", c); readc(); } fprintf(fp,"\n"); */ } else error(); break; case' ': break; case 1: //当读入为标识符 while((c>='a' && c <='z')||(c>='A' && c<='Z')|| c=='_'||(c>='0'&& c<='9')){ cat(); readc(); } word_count++; retract(); iskey=reserve(important); if(iskey==0){ table_insert(); fprintf(fp,"id\t%d\n", (symbol_count-1)); } else{ for(j=0; j<cc_count; j++) fprintf(fp,"%c", cc[j]); fprintf(fp,"\t-\n"); } iskey=0; clean(); break; case 2: //当读入为数字0-9 fprintf(fp,"num\t"); word_count++; DTB(); for(j=0; j<cc_count; j++) fprintf(fp,"%c", cc[j]); fprintf(fp,"\n"); clean(); break; case '<': readc(); if(c=='=') fprintf(fp,"relop\tLE\n"); else if(c=='>') fprintf(fp,"relop\tNE\n"); else{ retract(); fprintf(fp,"relop\tLT\n"); } clean(); break; case '=': fprintf(fp,"relop\tEQ\n"); clean(); break; case '>': readc(); if(c=='=') fprintf(fp,"relop\tGE\n"); else{ retract(); fprintf(fp,"relop\tGT\n"); } clean(); break; case ':': readc(); if(c=='=') fprintf(fp,"assign-op\t-\n"); retract(); fprintf(fp,"':'\t-\n"); clean(); break; case ',': fprintf(fp,"','\t-\n"); break; case '+': fprintf(fp,"'+'\t-\n"); break; case '-': fprintf(fp,"'-'\t-\n"); break; case '.': fprintf(fp,"'.'\t-\n"); break; case '(': fprintf(fp,"'('\t-\n"); break; case ')': fprintf(fp,"')'\t-\n"); break; case ';': fprintf(fp,"';'\t-\n"); break; case '{': fprintf(fp,"'{'\t-\n"); break; case '}': fprintf(fp,"'}'\t-\n"); break; case '/': //分析并处理注释 readc(); if(c=='*'){ loop_1: readc(); while(c!='*') { readc(); char_count--; } readc(); if(c=='/'){ char_count = char_count-4; break; } goto loop_1; } else{ retract(); fprintf(fp,"'/'\t-\n"); } clean(); break; case '\n': row++; line=0; break; default: error(); //出错处理 } readc(); } fprintf(fp,"\n总字符数:%d\n", char_count); fprintf(fp,"总单词书: %d\n", word_count); fprintf(fp,"总行数:%d\n", row-1); fclose(fp); fclose(ip); system("pause"); return 0; } void error(void) { fprintf(fp,"Error!!!!--row:%d, line:%d--错误是:%c\n", row, line, c); } void Initial(void) { //关键字初始化 // important[0] = malloc(sizeof(char)*10); //important[0]='if'; //???????????????????????????????? //printf("%c", *(important[0])); //others } //函数功能:完成读入字符 void readc(void){ if(aft!=-1){ c=aft; aft=-1; } else{ pre=c; fscanf(ip,"%c", &c); if(c!=' '&&c!='\n') char_count++; } return; } //函数功能:把需要判断的输入字符连接起来 void cat(void) { cc[cc_count]=c; cc_count++; return; } //函数功能:向前扫描指针向后退一个字符 void retract(void) { aft=c; c=pre; return; } //函数功能:查看关键字表。 //返回值:0-非关键字 1-是关键字 int reserve(char *f[]) { int m, n; for(m = 0; m < 11; m++){ n = 0; rptr = f[m]; for(; (*rptr)==cc[n]&& n<cc_count && (*rptr)!='\0'; rptr++, n++); if((*rptr)=='\0' && n==cc_count) return 1; } return 0; } //函数功能:将标识符插入符号表 void table_insert(void) { tptr = symbol[symbol_count]; tptr = malloc(sizeof(char)*20); //正规表达式不能超过20个字符 for(j=0; j<cc_count; j++, tptr++) (*tptr)=cc[j]; symbol_count++; return; } //函数功能:清空缓存 void clean(void) { for(i=0; i<20; i++) cc[i] = -1; cc_count=0; return; } //函数功能:十/二进制转换 void DTB(void) { switch(c){ case '0': cc[0]='0'; cc_count=1; break; case '1': cc[0]='1'; cc_count=1; break; case '2': cc[0]='0'; cc[1]='1'; cc_count=2; break; case '3': cc[0]='1'; cc[1]='1'; cc_count=2; break; case '4': cc[0]='0'; cc[1]='0'; cc[2]='1'; cc_count=3; break; case '5': cc[0]='1'; cc[1]='0'; cc[2]='1'; cc_count=3; break; case '6': cc[0]='0'; cc[1]='1'; cc[2]='1'; cc_count=3; break; case '7': cc[0]='1'; cc[1]='1'; cc[2]='1'; cc_count=3; break; case '8': cc[0]='0'; cc[1]='0'; cc[2]='0'; cc[3]='1'; cc_count=4; break; case '9': cc[0]='1'; cc[1]='0'; cc[2]='0'; cc[3]='1'; cc_count=4; break; } return; } //函数功能:辅助函数,帮助分离非符号字符。 char judgec(void) { if((c>='a' && c <='z')||(c>='A' && c<='Z')|| c=='_') return 1; if(c>='0'&& c<='9') return 2; else return c; }
Vampire机器人#9 · 2009/12/26
dev-c++?? 猜想是因为有几个main里面return 0之前没有system("pause")