命令解释程序的编写
#include<stdio.h> #include<conio.h> #include<string.h> #include<stdlib.h> #define N 200 struct OS { int a; char hbt[50]; char hbt1[100]; }; struct OS cmd[N]; main() { FILE *fp; int i,n; char str[N]; printf("Micrcmdoft Windows [版本 6.1.7601 ]\n"); printf("版本所有 <c> 2009 Micrcmdoft Corporation。保留所有权利\n\n"); fp=fopen("cmd.txt","r+"); for(i=0;!feof(fp);i++) { fscanf(fp,"%s%s%d",cmd[i].hbt,cmd[i].hbt1,&cmd[i].a); n=i; } fclose(fp); while(1){ printf("D:\Users\JC>"); gets(str); for(i=0;i<=n;i++) { if(stricmp(str,"help")==0) { for(i=0;i<=n;i++) { printf("%s\t%s\n",cmd[i].hbt,cmd[i].hbt1); } break; } if((stricmp(str,cmd[i].hbt)==0)&&(cmd[i].a==1)) { printf("\"%s\"是内部命令,输入正确\n",cmd[i].hbt); printf("该命令的作用是:%s\n",cmd[i].hbt1); break; } else if((stricmp(str,cmd[i].hbt)==0)&&(cmd[i].a==0)) { printf("\"%s\"是外部命令,输入正确\n",cmd[i].hbt); printf("该命令的作用是:%s\n",cmd[i].hbt1); break; } else if((stricmp(str,cmd[i].hbt)!=0)&&(i==n)) { printf("'%s'不是内部或外部命令,也不是可运行的程序或批处理文件\n",str); } } printf("\n"); } }