int main(int arg, char *args[]) { if (arg < 4) return -1; mysql_init(&mysql); //相当于SQL内部初始化了一个TCP的socket,同时初始化了SQL必须的内存和一些结构 //连接到mysql server connection = mysql_real_connect(&mysql, args[1], args[2], args[3], args[4], 0, 0, 0); if (connection == NULL) { printf("connect error, %s\n", mysql_error(&mysql)); return -1; } if (mysql_query(connection, "SET NAMES utf8") != 0) //设置字符集为UTF8 { printf("设置字符集错误, %s\n", mysql_error(&mysql)); } char buf[BUFSIZE]; memset(buf, 0, sizeof(buf)); strcpy(buf, "请选择\n1:插入\n2:删除\n3:修改\n4:查询\n"); write(STDOUT_FILENO, buf, strlen(buf)); memset(buf, 0, sizeof(buf)); read(STDIN_FILENO, buf, sizeof(buf)); if (strncmp(buf, "4", 1) == 0) //输入用户输入的是4 { memset(buf, 0, sizeof(buf)); strcpy(buf, "请输入任意SELECt语句"); write(STDOUT_FILENO, buf, strlen(buf)); memset(buf, 0, sizeof(buf)); read(STDIN_FILENO, buf, sizeof(buf)); selectname(buf); } else { if (strncmp(buf, "1", 1) == 0) //输入用户输入的是1 { insertname(buf); } if (strncmp(buf, "2", 1) == 0) //输入用户输入的是2 { deletename(buf); } if (strncmp(buf, "3", 1) == 0) //输入用户输入的是3 { updatename(buf); } mysql_query(connection, buf); } mysql_close(connection); //断开与SQL server的连接 puts("!!!Hello World!!!"); /* prints !!!Hello World!!! */ return EXIT_SUCCESS; }
void administrate(struct student*head) { int b; long long c; system("CLS"); printf("请输入管理员密码\n"); scanf("%lld",&c); if(c == 19940112) { system("CLS"); time_t now; now = time (NULL); while(1) { printf("\n\t\t\t\t管理员权限页面\n\t\n"); printf("\t\t\t -----------------------------\n\t\n"); printf("\t\t\t1:按学号删除个人信息\t\t\n\n"); printf("\t\t\t2:按姓名删除个人信息\t\t\n\n"); // printf("\t\t\t3:按学号增加学生信息\t\t\n\n"); printf("\t\t\t0:返回上级\t\t\n\n"); printf("\t\t >>>>>>>>>>请输入你的选择\n\n"); printf("\t\t\t Made by Ice, now time is %s\n ",ctime(&now)); printf("\t ------------------------------------------------------------\n"); scanf("%d",&b); switch(b) { case 1:deletenumber(head); break; case 2:deletename(head); break; case 3: break; case 0: break; default : printf("错误"); } if(b == 0) break; } } system("pause"); system("CLS"); }
//主函数 int main(int arg, char *args[]) { if(arg<2) return -1; struct termios term;//定义一个termios结构 if(tcgetattr(STDIN_FILENO,&term)==-1) { printf("tegetattr is error :%s\n",strerror(errno)); return 0; } /* term.c_flag &=~ICANON;//取消ICANON不规范输入 term.c_flag |=ICANON;//设置ICANON规范输入 term.c_cc字段为设置的具体特殊字符如c_cc[VERASE]代表退格键 term.c_cc[VERASE]='\b'表示把退格键修改为\b term.c_cc[VERASE]='\b'表示把退格键修改为\b VERASE代表向前擦除一个字符,VINRE代表发送ctr+c中断信号,ctrl+c的ASCII值为3 例如:term.c_cc[VINTR]='\t'表示将tab键设置为中断信号 tcsetattr,中第二个参数说明TCSAFLUSH:发送了所有输出后更改后才生效,在更改发生时未读取的数据 将被删除TCSANOW更改立即生效 TCSADRAIN:发送了所有输出后更改才生效 */ term.c_cc[VERASE]='\b';//b为退格键 if(tcsetattr(STDIN_FILENO,TCSANOW,&term)==-1) { printf("tcsetattr error:%s\n",strerror(errno) ); } //return 0; mysql_init(&mysql);//mysql内部初始化一个TCPsocket connection=mysql_real_connect(&mysql,args[1],"dbuser1","dbuser1","db1",0,0,0); if(connection==NULL) { printf(mysql_error(&mysql)); return -1; } int ret1=mysql_query(connection,"SET NAMES utf8;"); if(ret1!=0) { printf("set character error\n"); } char buf[1024]; memset(buf,0,sizeof(buf)); strcpy(buf,"请选择\n1:插入\n2:删除\n3:修改\n4:查询\n"); write(STDOUT_FILENO,buf,strlen(buf)); memset(buf,0,sizeof(buf)); read(STDIN_FILENO,buf,sizeof(buf)); if(strncmp(buf,"4",1)==0){ memset(buf,0,sizeof(buf)); strcpy(buf,"请输入查询语句:\n"); write(STDOUT_FILENO,buf,strlen(buf)); memset(buf,0,sizeof(buf)); read(STDIN_FILENO,buf,sizeof(buf)); selectname(buf); }else{ if(strncmp(buf,"1",1)==0){ inseertname(buf); } if(strncmp(buf,"2",1)==0){ deletename(buf); } if(strncmp(buf,"3",1)==0){ deletename(buf); } mysql_query(connection,buf); } //关闭mysql mysql_close(connection); puts("!!!Hello World!!!"); return EXIT_SUCCESS; }