c語言程序問題
150
這段程序怎樣輸入能夠正確執行 case 'c': /* 創建新表 */
if (strcmp(ctemp_edit[0],"create")==0) printf(""); else { printf("Wrong SQL!\n");break;}
scanf("%s",ctemp_edit[1]); /* table */ scanf("%15s",ctemp_edit[2]); /*表名*/ scanf("%s",ctemp_edit[3]); /* ( */ do{ scanf("%15s",ctemp_edit[4]); /*字段名*/ scanf("%8s",ctemp_edit[5]); /*類型*/ scanf("%d",&size_edit); /*大小*/
scanf("%c",&key_edit); while(key_edit==' ') scanf("%c",&key_edit); /*主鍵*/
scanf("%c",&null_edit); while(null_edit==' ') scanf("%c",&null_edit); /*空值*/
scanf("%c",&valid_edit); while(valid_edit==' ') scanf("%c",&valid_edit); /*可視化 一般為y*/ strcpy(tempTM.sFieldName,ctemp_edit[4]); /*列名*/ strcpy(tempTM.sType,ctemp_edit[5]); /* 列類型 */ tempTM.iSize=size_edit; /* 大小 */ tempTM.bKey=key_edit; /* 主鍵 */ tempTM.bNullFlag=null_edit; /* 值是否為空 */ tempTM.bValidFlag=valid_edit; /* 該字段是否有效,這裡默認為有效*/
FieldSet[iNum]=tempTM; /*將tempTM放入FieldSet數組內*/ iNum++; /*iNum加1*/
scanf("%c",&again); while(again==' ') scanf("%c",&again); }while(again==','); scanf("%s",ctemp_edit[11]); /* INTO */ scanf("%s",ctemp_edit[12]); /* DataBase_FileName */
if (strcmp(ctemp_edit[1],"table")==0) printf(""); else{ printf(" table ERROR !!!\n");break;}
if(strcmp(ctemp_edit[3],"(")==0) printf(""); else { printf(" ( ERROR \n"); break;}
if(again==')') printf(""); else { printf(" ) ERROR !!!\n"); break;}
if(strcmp(ctemp_edit[11],"into")==0) printf(""); else { printf(" into error!!!\n"); break;}
if((fp=fopen(ctemp_edit[12],"ab+")) == NULL ) { printf("\nopen or create file error!!!\n" ); getch(); exit(1); } fwrite("~",sizeof(char),1,fp); fwrite(ctemp_edit[2],sizeof(char),FILE_NAME_LENGTH,fp); fwrite(&iNum,sizeof(int),1,fp); /*此表內所含字段結構的數量*/ fwrite(FieldSet,sizeof(TableMode),iNum,fp); /*表的字段結構*/ fclose(fp); /*關閉文件*/ printf("\nTable Create Successfully!"); break;
最佳回答:
先輸入create
再輸入一個字串(table),再輸入表名,再輸入一個字串((左括號),
然後依次輸入字段名(字符串),類型(字符串),大小(整數),然後輸入3個字符分別為主鍵,空值,可視化,接下來輸入,逗號表示繼續下一個,如果不再輸入下一個就輸入一個字符右括號()),
著輸入 into,輸入數據庫名稱,應該就可以執行了