user-0 提问: C语言新手求助

回复:
user: user-1
content: 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10581430.html 希望对你有帮助：https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 做完第四题，供参考：//题目要求是实现下面6个功能，我现在能写出的代码能实现前两个功能，和老师沟通过后，我代码存在的问题应该 //是没能把文件中信息存储在结构体中，我在代码中使用了strncpy_s函数，想把信息复制到结构体items中，但是后面 //的功能实现不了，已经卡在这里好久了，还是没有进步，能看看错在哪了吗？ //（1）对日志文件进行列表读取和写入； //（2）计算日志文件中GET类型请求方式的占比； //（3）对访问状态码进行分析与统计，计算所有访问状态码的比率； //（4）分析访问最多的客户IP地址，并统计其访问次数； //（5）分析常用密码，并统计密码使用次数； //（6）用户输入时间段，查找该时间段内访问记录并输出到文件中   #include<stdio.h> #include<string.h>  struct record       //结构体 {     char method[255];  //[GET POST]     char ip[255];      //[233.102.79.50]     char protocol[255];//[HTTP/1.1]     char time[255];    //[2021-01-18 08:57:44]     char add[255];     //[http://39.99.254.200:8810]     char port[255];    //[/admin/login.jsp]     char page[255];    //[passwd=admin123&&password=123456]     char status[255];  //[403]     char exploer_info[255];//[Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko] };  struct record rec[2048];//文件有2048行  int main(void) {      char line[1024];     int  i=0,n=0,k,j,max,j_pos,j_pos1,pos[9],pos1[9];      FILE *fp;     fp=fopen("access.log","r+");//打开文件     if(!fp){         printf("false\n");         return -1;     }     else{         printf("open file successful!\n");     }     while((fgets(line,1024,fp))!=NULL){          j_pos=0,j_pos1=0;          for(j=0;j<strlen(line);j++){             if(line[j]=='[') {pos[j_pos]=j;  j_pos++;} //'[' 位置标记             if(line[j]==']') {pos1[j_pos1]=j;j_pos1++;}//']' 位置标记          }          strncpy(rec[i].method,      (line+pos[0]+1),pos1[0]-pos[0]-1);          strncpy(rec[i].ip,          (line+pos[1]+1),pos1[1]-pos[1]-1);          strncpy(rec[i].protocol,    (line+pos[2]+1),pos1[2]-pos[2]-1);          strncpy(rec[i].time,        (line+pos[3]+1),pos1[3]-pos[3]-1);          strncpy(rec[i].add,         (line+pos[4]+1),pos1[4]-pos[4]-1);          strncpy(rec[i].page,        (line+pos[5]+1),pos1[5]-pos[5]-1);          strncpy(rec[i].port,        (line+pos[6]+1),pos1[6]-pos[6]-1);          strncpy(rec[i].status,      (line+pos[7]+1),pos1[7]-pos[7]-1);          strncpy(rec[i].exploer_info,(line+pos[8]+1),pos1[8]-pos[8]-1);          i++;     }     fclose(fp);//关闭文件      int *a = new int[i],*b = new int[i];// 统计数组申请     memset(a,0,sizeof(int)*i);  //数组初始化     memset(b,0,sizeof(int)*i);     for(j=0;j<i;j++){       if(strcmp(rec[j].method,"GET")==0)n++;//GET请求统计 第二题       for(k=0;k<i;k++){           if(strcmp(rec[j].status,rec[k].status)==0) b[j]++;//状态码进行分析统计 第三题           if(strcmp(rec[j].ip,rec[k].ip)==0) a[j]++;  //分析统计访问最多的客户IP地址 第四题       }     }     printf("输出GET请求所占比例:%6.3f\n",1.0*n/i);//输出GET请求所占百分比;     max = a[0];k=0;     for(j=0;j<i;j++){         printf("rec[%d].status=%s:%6.3f\n",j,rec[j].status,b[j]*1.0/i);//输出所有访问状态码的比率         if(max<a[j]) {max = a[j];k=j;} // 找到访问最多的客户IP地址次数 第四题     }     printf("访问最多的客户IP地址:%s,共访问:%d次\n",rec[k].ip,a[k]);//输出访问最多的客户IP地址及次数 第四题      delete [] a; //释放数组     delete [] b;        //下面这段输出看看读入到rec[i]中的内容是否达预期目标,等程序调试完毕，这段可以删除： //例子开始：     for(j=0;j<i;j++)      {        printf("\n%s     %s     %s    %s    %s    %s     %s    %s     %s   \n",        rec[j].method,rec[j].ip,    rec[j].protocol,        rec[j].time,  rec[j].add,   rec[j].page,        rec[j].port,  rec[j].status,rec[j].exploer_info);      } //例子结束          return 0; }  //open file successful! //输出GET请求所占比例: 0.818 //rec[0].status=200: 0.909 //rec[1].status=200: 0.909 //rec[2].status=200: 0.909 //rec[3].status=412: 0.091 //rec[4].status=200: 0.909 //rec[5].status=200: 0.909 //rec[6].status=200: 0.909 //rec[7].status=200: 0.909 //rec[8].status=200: 0.909 //rec[9].status=200: 0.909 //rec[10].status=200: 0.909 //访问最多的客户IP地址:233.102.79.50,共访问:11次  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //POST     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         412     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //POST     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko //请按任意键继续. . .

user: user-2
content: 只剩第6题，供参考：//题目要求是实现下面6个功能，我现在能写出的代码能实现前两个功能，和老师沟通过后，我代码存在的问题应该 //是没能把文件中信息存储在结构体中，我在代码中使用了strncpy_s函数，想把信息复制到结构体items中，但是后面 //的功能实现不了，已经卡在这里好久了，还是没有进步，能看看错在哪了吗？ //（1）对日志文件进行列表读取和写入； //（2）计算日志文件中GET类型请求方式的占比； //（3）对访问状态码进行分析与统计，计算所有访问状态码的比率； //（4）分析访问最多的客户IP地址，并统计其访问次数； //（5）分析常用密码，并统计密码使用次数； //（6）用户输入时间段，查找该时间段内访问记录并输出到文件中   #include<stdio.h> #include<string.h>  struct record       //结构体 {     char method[255];  //[GET POST]     char ip[255];      //[233.102.79.50]     char protocol[255];//[HTTP/1.1]     char time[255];    //[2021-01-18 08:57:44]     char add[255];     //[http://39.99.254.200:8810]     char page[255];    //[/admin/login.jsp]     char port[255];    //[passwd=admin123&&password=123456]     char status[255];  //[403]     char exploer_info[255];//[Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko] };  struct record rec[2048];//文件有2048行  int main(void) {      char line[1024];     int  i=0,j,j_pos,j_pos1,pos[9],pos1[9];      FILE *fp;     fp=fopen("access.log","r+");//打开文件     if(!fp){         printf("false\n");         return -1;     }     else{         printf("open file successful!\n");     }     while((fgets(line,1024,fp))!=NULL){          j_pos=0,j_pos1=0;          for(j=0;j<strlen(line);j++){             if(line[j]=='[') {pos[j_pos]=j;  j_pos++;} //'[' 位置标记             if(line[j]==']') {pos1[j_pos1]=j;j_pos1++;}//']' 位置标记          }          strncpy(rec[i].method,      (line+pos[0]+1),pos1[0]-pos[0]-1);          strncpy(rec[i].ip,          (line+pos[1]+1),pos1[1]-pos[1]-1);          strncpy(rec[i].protocol,    (line+pos[2]+1),pos1[2]-pos[2]-1);          strncpy(rec[i].time,        (line+pos[3]+1),pos1[3]-pos[3]-1);          strncpy(rec[i].add,         (line+pos[4]+1),pos1[4]-pos[4]-1);          strncpy(rec[i].page,        (line+pos[5]+1),pos1[5]-pos[5]-1);          strncpy(rec[i].port,        (line+pos[6]+1),pos1[6]-pos[6]-1);          strncpy(rec[i].status,      (line+pos[7]+1),pos1[7]-pos[7]-1);          strncpy(rec[i].exploer_info,(line+pos[8]+1),pos1[8]-pos[8]-1);          i++;     }     fclose(fp);//关闭文件      char buf[255],bufk[255];     int n=0,m=0,k,q,max_ip,max_pw;     int *a = new int[i],*b = new int[i],*p = new int[i];//统计数组     memset(a,0,sizeof(int)*i);  //数组初始化     memset(b,0,sizeof(int)*i);     memset(p,0,sizeof(int)*i);     for(j=0;j<i;j++){       if(strcmp(rec[j].method,"GET")==0)n++;//GET请求统计    第2题       if(strlen(rec[j].port)>0)m++;         //统计使用密码登录的次数 第5题       sscanf(rec[j].port,"%*[^&&]&&%[^\n]",buf); //取密码字符段       for(k=0;k<i;k++){                                                                                                            if(strcmp(rec[j].status,rec[k].status)==0) b[j]++;//状态码进行分析统计 第3题           if(strcmp(rec[j].ip,    rec[k].ip)==0)     a[j]++;//分析统计访问最多的客户IP地址 第4题           sscanf(rec[k].port,"%*[^&&]&&%[^\n]",bufk);           if(strcmp(buf,bufk)==0&&(strlen(rec[j].port)>0)&&(strlen(rec[k].port)>0))p[j]++;// 分析常用密码  第5题       }     }     printf("GET请求所占比例:%6.3f\n",1.0*n/i);//输出GET请求所占百分比; 第2题     max_ip = a[0];max_pw = p[0];k=0;q=0;     for(j=0;j<i;j++){         printf("rec[%d].status=%s:%6.3f\n",j,rec[j].status,b[j]*1.0/i);//输出所有访问状态码的比率 第3题         if(max_ip<a[j]) {max_ip=a[j];k=j;}    // 找到访问最多次数的客户IP 第4题         if(max_pw<p[j]) {max_pw=p[j];q=j;}    // 找到使用次数最多的密码   第5题     }     printf("访问最多的客户IP地址:%s,共访问:%d次.\n",rec[k].ip,a[k]);//输出访问最多的客户IP地址及次数 第4题     sscanf(rec[q].port,"%*[^&&]&&%[^\n]",buf);     printf("常用密码:%s,被用了%d次.在%d次登录中，%d次用密码登录.\n",buf,max_pw,i,m); //rec[q].port 第5题     delete [] a;delete [] b;delete [] p;     //释放数组   //下面这段输出看看读入到rec[i]中的内容是否达预期目标,等程序调试完毕，这段可以删除，也可改成第6题的代码 //例子开始：     for(j=0;j<i;j++)      {        printf("\n%s     %s     %s    %s    %s    %s     %s    %s     %s   \n",        rec[j].method,rec[j].ip,    rec[j].protocol,        rec[j].time,  rec[j].add,   rec[j].page,        rec[j].port,  rec[j].status,rec[j].exploer_info);      } //结束          return 0; }  //open file successful! //GET请求所占比例: 0.818 //rec[0].status=200: 0.909 //rec[1].status=200: 0.909 //rec[2].status=200: 0.909 //rec[3].status=412: 0.091 //rec[4].status=200: 0.909 //rec[5].status=200: 0.909 //rec[6].status=200: 0.909 //rec[7].status=200: 0.909 //rec[8].status=200: 0.909 //rec[9].status=200: 0.909 //rec[10].status=200: 0.909 //访问最多的客户IP地址:233.102.79.50,共访问:9次. //常用密码:password=123456,被用了6次.在11次登录中，8次用密码登录.  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123455    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //POST     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         412     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123466    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.51     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //POST     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.80.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko //请按任意键继续. . .

user: user-2
content: 这是调试成功的把文件信息转存到结构体中的代码，并做了第二题。看了楼主上面的代码，感觉还是概念没搞清，建议仔细研究下面的代码，搞懂了，其余几题再往里加功能，无非就是对数组数据的统计分析，供参考：//题目要求是实现下面6个功能，我现在能写出的代码能实现前两个功能，和老师沟通过后，我代码存在的问题应该 //是没能把文件中信息存储在结构体中，我在代码中使用了strncpy_s函数，想把信息复制到结构体items中，但是后面 //的功能实现不了，已经卡在这里好久了，还是没有进步，能看看错在哪了吗？ //（1）对日志文件进行列表读取和写入； //（2）计算日志文件中GET类型请求方式的占比； //（3）对访问状态码进行分析与统计，计算所有访问状态码的比率； //（4）分析访问最多的客户IP地址，并统计其访问次数； //（5）分析常用密码，并统计密码使用次数； //（6）用户输入时间段，查找该时间段内访问记录并输出到文件中   #include<stdio.h> #include<string.h>  struct record       //结构体 {     char method[255];  //[GET POST]     char ip[255];      //[ip]     char protocol[255];//[HTTP/1.1]     char time[255];    //[2021-01-18 08:57:44]     char add[255];     //[http://39.99.254.200:8810]     char port[255];    //[/admin/login.jsp]     char page[255];    //[passwd=admin123&&password=123456]     char status[255];  //[403]     char exploer_info[255];//[Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko] };  struct record rec[2048];//文件有2048行  int main(void) {      char line[1024];     int  i=0,n=0,j,j_pos,j_pos1,pos[9],pos1[9];      FILE *fp;     fp=fopen("access.log","r+");//打开文件     if(!fp){         printf("false\n");         return -1;     }     else{         printf("open file successful!\n");     }     while((fgets(line,1024,fp))!=NULL){          j_pos=0,j_pos1=0;          for(j=0;j<strlen(line);j++){             if(line[j]=='[') {pos[j_pos]=j;  j_pos++;} //'[' 位置标记             if(line[j]==']') {pos1[j_pos1]=j;j_pos1++;}//']' 位置标记          }          strncpy(rec[i].method,      (line+pos[0]+1),pos1[0]-pos[0]-1);          strncpy(rec[i].ip,          (line+pos[1]+1),pos1[1]-pos[1]-1);          strncpy(rec[i].protocol,    (line+pos[2]+1),pos1[2]-pos[2]-1);          strncpy(rec[i].time,        (line+pos[3]+1),pos1[3]-pos[3]-1);          strncpy(rec[i].add,         (line+pos[4]+1),pos1[4]-pos[4]-1);          strncpy(rec[i].page,        (line+pos[5]+1),pos1[5]-pos[5]-1);          strncpy(rec[i].port,        (line+pos[6]+1),pos1[6]-pos[6]-1);          strncpy(rec[i].status,      (line+pos[7]+1),pos1[7]-pos[7]-1);          strncpy(rec[i].exploer_info,(line+pos[8]+1),pos1[8]-pos[8]-1);          i++; //文件行数     }     fclose(fp);//关闭文件       for(j=0;j<i;j++){       if(strcmp(rec[j].method,"GET")==0)n++;//GET请求统计 第二题     }     printf("输出GET请求所占比例：%f\n",1.0*n/i);//输出日志文件内容并统计计数,输出所占百分比;        //下面这段输出看看读入到rec[i]中的内容是否达预期目标,等程序调试完毕，这段可以删除： //例子开始：     for(j=0;j<i;j++)      {        printf("\n%s     %s     %s    %s    %s    %s     %s    %s     %s   \n",        rec[j].method,rec[j].ip,    rec[j].protocol,        rec[j].time,  rec[j].add,   rec[j].page,        rec[j].port,  rec[j].status,rec[j].exploer_info);      } //结束          return 0; }  //open file successful! //输出GET请求所占比例：0.818182  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //POST     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         412     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp         200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //POST     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko  //GET     233.102.79.50     HTTP/1.1    2021-01-18 08:57:44    http://39.99.254.200:8810    /admin/login.jsp     passwd=admin123&&password=123456    200     Mozilla/5.0 (Windows NT 10.0: WOW64: Trident/7.0: rv:11.0) like Gecko //请按任意键继续. . .

user: user-3
content: 课设就自己加油吧