• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            讀鍵盤掃描碼
            獲取機器日期
            將浮點數轉化為字符串
            清除屏幕
            顯示時間
            打印一個矩形
            砍掉字符串中所有空格
            取子字符串
            從文件中讀取字符
            字符串左靠齊
            取左字符串
            向文件寫數據
            取右字符串
            打開或關閉光標
            喇叭發聲
            時間延遲
            正點報時
            寫整數于文件中
            從文件中讀取整數
            報警
            字符串右靠齊
            字符串居中
            刪除子字符串
            查找指定字符串
            產生空格
            產生字符串
            砍掉字符串左邊空格
            砍掉字符串右邊空格
            顯示一個字符串
            定義屏幕顏色
            顯示提示窗口顯示警告窗口
            得到文件長度
            窗口滾屏
            掃描鍵盤
            插入字符串
            檢測磁盤是否準備就緒
            檢測磁盤是否寫保護
            修改文件的某一行
            成批拷貝文件
            拷貝一個文件
            建立目錄
            得到目錄
            得到文件名
            任意兩個正整數相加(<80位)
            任意兩個正整數相乘


            注意:該函數集省略了不少TC標準頭文件,讀者使用時要自行添加。而且由于該函數集內部函數間有的有調用關系,讀者拆卸時要謹慎。


            /*編程技巧薈萃*/

            /*從鍵盤中讀取字符 功能:按下普通鍵時,返回其ASCII碼 掃描碼CODE=0*/
            int INKEY(int *code)
            {
            int m;
            while(!bioskey(1))/*可加入無按鍵時代碼*/;
            *code=bioskey(0);
            m=*code*255;
            if(!m) m=*code>>8;
            *code=*code&255;
            return m;
            }

            /*獲取機器日期*/
            int DATE(char *s,char type)
            {
            char dat[30];
            int num;
            struct tm *tblock;
            time_t t;
            t=time(NULL);
            tblock=localtime(&t);
            strcpy(dt,asctime(tblock));
            strcpy(s,"");
            switch(type)
            {
            case 'N':
            num=(*tblock).tm_year+1900;
            itoa(num,s,10);
            break;
            case 'Y':
            num=(*tblock).tm_mon+1;
            itoa(num,s,10);
            break;
            case 'R':
            num=(*tblock).tm_mday;
            itoa(num,s,10);
            break;
            case 'S':
            strcpy(dt,asctime(tblock));
            MID(s,dt,12,8);
            break;
            }
            }
            return num;
            }

            /*將浮點數轉化為字符串*/
            /* 參數說明 data:需轉換的浮點數;s:輸出字符串;len:轉換后的長度*/
            void f_to_s(double data,char *s,int len)
            {
            int dec,sign,i;
            char *s1,s2[100],s3[100];
            s1=0;
            s2[0]=0;
            s3[0]=0;
            s1=fcvt(data,len,&dec,&sign);
            if (!sign&&data>=1)
            {
            MID(s2,s1,dec+1,-1);
            MID(s3,s1,1,dec);
            strcpy(s,"+");
            strcat(s,s3);
            strcat(s,".");
            strcat(s,s2);
            }
            if (sign&&fabs(data)>=1)
            {
            MID(s2,s1,dec+1,-1);
            strcpy(s,"-");
            MID(s3,s1,1,dec);
            strcat(s,s3);
            strcat(s,".");
            strcat(s,s2);
            }
            if (!sign&&dec==0)
            {
            strcpy(s,"+0.");
            strcat(s,s1);
            }
            if (sign&&dec==0)
            {
            strcpy(s,"-0.");
            strcat(s,s1);
            }
            if (!sign&&dec<0)
            {
            strcpy(s,"+0.");
            for(i=1;i<=fabs(dec);i++)
            strcat(s,"0");
            strcat(s,s1);
            }
            if (sign&&dec<0)
            {
            strcpy(s,"-0.");
            for(i=1;i<=fabs(dec);i++)
            strcat(s,"0");
            strcat(s,s1);
            }
            if (strlen(s)>len) s[len]=0;
            }

            /*清除屏幕*/
            void CLSXY(int color,int x,int y,int xl,int yl)
            {
            int x1,y1;
            union REGS r;
            if(x<1||y<1) return;
            y--;
            x--;
            y1=y+yl-1;
            x1=x+xl-1;
            if (y1>25||x1>80)
            return;
            r.h.ah=6; /*子功能號*/
            r.h.al=0; /*滾動行數*/
            r.h.ch=y;
            r.h.cl=x;
            r.h.dh=y1;
            r.h.dl=x1;
            r.h.bh=color*16;
            int86(16,&r,&r);
            }


            /*顯示時間*/
            void display_time(int color,int back_color,int y,int x)
            {
            static char oldtime[9]="";
            char newtime[9];
            if(y<1||x<1) return;
            settextstyle(1,0,1);
            DATA(newtime,'S');
            back_color=7;
            if(strcmp(newtime,oldtime))
            {
            setfillstyle(1,back_color);
            setcolor(color);
            bar(535,458,635,475);
            outtextxy(x,y,newtime);
            strcpy(oldtime,newtime);
            }
            }


            /*打印一個矩形*/
            void PRINT_KJ(int x,int y,int wide,int high)
            {
            int i;
            for(i=x;i<x+wide;i+=2)
            {
            gotoxy(i,y);
            cprintf("");
            }
            gotoxy(x,y+high);
            cprintf("");
            gotoxy(x+wide,y+high);
            cprintf("");
            gotoxy(x,y);
            cprintf("");
            gotoxy(x+wide,y);
            cprintf("");
            for(i=x+2;i<x+wide;i+=2)
            {
            gotoxy(i,y+high);
            cprintf("");
            }
            for(i=y+1;i<y+high;i++)
            {
            gotoxy(x,i);
            cprintf("");
            }
            for(i=y+1;i<y+high;i++)
            {
            gotoxy(x+wide,i);
            cprintf("");
            }
            }

            /*砍掉字符串中所有空格*/
            void CUT_ALL_SPC(char *s)
            {
            int i,n;
            char d[10000];
            n=0;
            for(i=0;i<strlen(s);i++)
            if(s!=32)
            {
            d[n]=s;
            n++;
            }
            d[n]=0;
            strcpy(s,d);
            }


            /*取子字符串*/
            void MID(char *s,char *t,int n,int m)
            {
            int i,j,p;
            if(n<1) n=1;
            i=strlen(s);
            if(i<n) m=0;
            if(m<0) m=i;
            else m=n+m-1;
            if(m>i) m=i;
            p=m-n+1;
            if(p<0) p=0;
            for(i=n-1,j=0;i<m;i++,j++)
            t[j]=s;
            t[p]=0;
            }


            /*從文件中讀取字符*/
            int READ_STR(char *s,FILE *fp)
            {
            int i=0;
            if(!fp) return 0;
            if(fgets(s,10000,fp)) i=1;
            s[strlen(s)-1]=0;
            return i;
            }

            /*字符串左靠齊*/
            void MOVE_LEFT(char *d,char *s,int n)
            {
            int i,l;
            l=strlen(s);
            if(n>l) n=l;
            for(i=0;i<l;i++)
            *d++=*s++;
            *d=0;
            }

            /*取左字符串*/
            void LEFT(char *d,char *s,int n)
            {
            int i,l;
            i=0;
            l=strlen(s);
            if(n>l) n=l;
            for(i=0;i<n;i++)
            d=s;
            d[n]=0;
            }


            /*向文件寫數據*/
            void WRITE_STR(char *s,FILE *fp)
            {
            char c=10;
            if(!fp) return;
            fputs(s,fp);
            fputc(c,fp);
            }

            /*取右字符串*/
            void RIGHT(char *dest,char *source,int num)
            {
            int i,j;
            if (num<1) num=0;
            num=strlen(source)-num;
            if (num<0) num=0;
            for(i=0,j=num;j<=strlen(source);i++,j++) dest=source[j];
            }


            /*打開或關閉光標*/
            void CURSOR(int on2off)
            {
            union REGS r;
            if (on2off!=OFF) on2off=10;
            r.h.ah=1;
            r.h.ch=3;
            r.h.cl=on2off;
            int86(16,&r,&r);
            }

            /*喇叭發聲*/
            void SOUND(int frequency,int time)
            {
            int i;
            i=time*50;
            if (i>30000) i=30000;
            if (i<50) i=50;
            sound(frequency);
            MYDELAY(i);
            nosound();
            }

            /*時間延遲*/
            void MYDELAY(long t)
            {
            time_t OldTime;
            long t0;
            t0=t/55;
            if (t0<1) t0=1;
            OldTime=clock();
            while(clock()-OldTime<t0);
            }


            /*正點報時*/
            void REPORT_CLOCK(void)
            {
            int i;
            for(i=0;i<5;i++);
            {
            SOUND(500,10);
            MYDELAY(1000);
            }
            SOUND(800,10);
            }


            /*寫整數于文件中*/
            void WRITE_INT(int num,FILE *p)
            {
            char s[20],a=10;
            if (!p) return;
            itoa(num,s,10);
            fputs(s,p);
            fputc(a,p);
            }


            /*從文件中讀取整數*/
            int READ_INT(int *num,FILE *p)
            {
            int i;
            char s[30]="";
            if (!p) return 0;
            if (fgets(s,10000,p))
            {
            i=-1;
            s[strlen(s)-1]=0;
            *num=atoi(s);
            }
            else i=0;
            return i;
            }


            /*報警 */
            void WARN(void)
            {
            SOUND(300,1);
            SOUND(100,1);
            }


            /*字符串右靠齊*/
            void MOVE_RIGHT(char *s,int wide)
            {
            int i,l,n;
            l=strlen(s);
            n=wide-l;
            if (n>0)
            {
            for(i=l;i>-1;i--) s[i+n]=s;
            for(i=0;i<n;i++) s=32;
            }
            }


            /*字符串居中*/
            void MOVE_MIDDLE(char *s,int wide)
            {
            int i,l,n;
            l=strlen(s);
            if (wide>l)
            {
            wide=wide-1;
            n=wide/2;
            wide=wide-n;
            for(i=l;i>-1;i--) s[i+n]=s;
            for(i=0;i<n;i++) s=32;
            for(i=0;i<wide;i++) s[l+n+i]=32;
            s[l+n+i]=0;
            }
            }

            /*刪除子字符串*/
            void Delete_SubString(char *source,int start,int num)
            {
            int i,l;
            l=strlen(source);
            if (num>l-start+1||num==-1) num=l-start+1;
            if (start<1||start>1) return;
            for(i=start;i<l-num+2;i++)
            source[i-1]=source[i+num-1];
            }

            /*查找指定字符串*/
            int INSTR(int n,char *source,char *dest)
            {
            int i,j,k1,k2,p;
            int start=0;
            if (n==0) n=1;
            k1=strlen(source);
            k2=strlen(dest);
            if (n<0)
            {
            char s[100];
            n=-n;
            MID(s,source,n,k2);
            if (strcmp(s,dest)) return 0;
            return n;
            }
            if (k1-n+1<k2) return start;
            for(i=n-1;i<k1;i++)
            {
            p=0;
            for(j=0;j<k2;j++)
            if (source[i+j]!=dest[j]) break;
            else p++;
            if (p==k2)
            {
            start=i+1;
            break;
            }
            }
            return start;
            }


            /*產生空格*/
            void SPACE(char *s,int n)
            {
            int i;
            if (n<0) n=0;
            for(i=0;i<n;i++) *s++=32;
            *s=0;
            }


            /*產生字符串*/
            void STRING(int n,char *s1,char *s2)
            {
            int i;
            if (n<0) n=0;
            s1[0]=0;
            for(i=1;i<=n;i++) strcat(s1,s2);
            }


            /*砍掉字符串左邊空格*/
            void CUT_LEFT_SPACE(char *s)
            {
            int i,j,k=0;
            i=strlen(s)+1;
            for(j=0;j<i;j++) if (s[j]!=' ') break;
            for(k=0;j<i;k++,j++) s[k]=s[j];
            }
            /*砍掉字符串右邊空格*/
            void CUT_RIGHT_SPACE(char *s)
            {
            int i,j;
            i=strlen(s)-1;
            for(j=i;j>-1;j--) if (s[j]!=' ') break;
            s[j+1]=0;
            }

            /*顯示一個字符串*/
            void DISPLAY(char *s)
            {
            union REGS regs;
            int color,x,y;
            x=wherex();
            y=wherey();
            color=16*bjys+qjys;
            while(*s)
            {
            if(x>80) break;
            regs.h.ah=9;
            regs.h.al=*s;
            regs.h.bh=0;
            regs.h.bl=color;
            regs.x.cx=1; /*顯示的次數,不改變光標位置*/
            int86(16,&reg;s,&reg;s);
            x++;
            if(x>80)
            {
            x=1;
            y++;
            if(y>25) y=25;
            }
            gotoxy(x,y);
            s++;
            }
            }

            /*定義屏幕顏色*/
            void COLOR(int ForeColor,int BackColor)
            {
            if(ForeColor<0||ForeColor>15) return;
            if(BackColor<0||BackColor>15) return;
            qjys=ForeColor;
            bjys=BackColor;
            }

            /*顯示提示窗口*/
            void quit_YesNo(char *s1,char *s2)
            {
            char buffer[2000],jx;
            gettext(30,8,76,16,buffer);
            textbackground(3);
            CLSXY(8,32,9,30,6);
            CLSXY(4,30,8,30,6);
            COLOR(15,4);
            gotoxy(35,10);
            DISPLAY(s1);
            gotoxy(35,12);
            DISPLAY(s2);
            gotoxy(35+strlen(s2)+1,12);
            jx=getch();
            puttext(30,8,76,16,buffer);
            if (jx=='n'||jx=='N') return;
            textbackground(0);
            textcolor(15);
            clrscr();
            CURSOR(ON);
            exit(0);
            }

            /*顯示警告窗口*/
            void warn_message(char *s1,char *s2)
            {
            char buffer[2000];
            gettext(30,8,76,16,buffer);
            CLSXY(8,32,9,30,6);
            CLSXY(4,30,8,30,6);
            COLOR(15,4);
            gotoxy(35,10);
            DISPLAY(s1);
            gotoxy(35,12);
            DISPLAY(s2);
            gotoxy(40,13);
            DISPLAY("按任意鍵繼續...");
            getch();
            puttext(30,8,76,16,buffer);
            }

            /*得到文件長度*/
            long GetFileLength(char *file)
            {
            FILE *fp;
            int i;
            if ((fp=fopen(file,"rb"))==NULL)
            {
            clrscr();
            printf("Can't open the file %s .",file);
            return 0;
            }
            i=0;
            while(!feof(fp))
            {
            i++;
            fgetc(fp);
            }
            fclose(fp);
            return (i-1);
            }

            /*窗口滾屏*/
            void WINDOW_ROLL(int y1,int x1,int yl,int xl,int direct)
            {
            union REGS regs;
            int x2,y2;
            x1--;
            y1--;
            x2=x1+xl-1;
            y2=y1+yl-1;
            regs.h.ah=5+direct; /*ah=06h 向上滾動當前頁*/
            /*ah=07h 向下。。。 */
            regs.h.al=1;
            regs.h.bh=16*pmbj+pmqj;
            regs.h.ch=y1; /*左上角行*/
            regs.h.cl=x1; /*列*/
            regs.h.dh=y2; /*右下角行*/
            regs.h.dl=x2; /*列*/
            int86(16,&reg;s,&reg;s);
            }

            /*掃描鍵盤*/
            int scan_keyboard(int *m)
            {
            union inkey
            {
            unsigned char ch[2];
            int ii;
            }cc;
            while(!bioskey(1))
            {;}
            cc.ii=bioskey(0);
            *m=cc.ch[1];
            return cc.ch[0];
            }

            /*插入字符串*/
            void INSERT_STRING(char *ds,char *ss,int n)
            {
            char s[100];
            MID(ds,s,n,-1);
            ds[n-1]=0;
            strcat(ds,ss);
            strcat(ds,s);
            }
            void STR_ADD_CHAR(char *s,char ch)
            {
            char s1[2];
            s1[0]=ch;
            s1[1]=0;
            strcat(s,s1);
            }

            /*檢測磁盤是否準備就緒*/
            int CheckDiskReading(int n)
            {
            int result;
            char buffer[512];
            result=biosdisk(4,n,0,0,0,1,buffer);
            result=result&0x02;
            if (result!=0x02) return 0;
            return 1;
            }

            /*檢測磁盤是否寫保護*/
            int CheckDiskWriteProf(void)
            {
            int result;
            char buffer[512];
            result=biosdisk(5,0,0,0,0,1,buffer);
            if (result==0x03) return 0;
            return 1;
            }

            /*修改文件的某一行*/
            int ModifyFileLine(char *filename,char *s,int n)
            {
            char data[20][80];
            int i;
            FILE *fp;
            if ((fp=fopen(filename,"r"))==NULL) return 0;
            i=0;
            while(READ_STR(data,fp))
            i++;
            fclose(fp);
            fp=fopen(filename,"w");
            strcpy(data[n-1],s);
            n=i-1;
            for(i=0;i<=n;i++)
            WRITE_STR(data,fp);
            fclose(fp);
            return 1;
            }

            /*成批拷貝文件*/
            int CopyFile(char *sfile,char *dfile,int f2d,int barlong,int height,int x,int y)
            {
            int Copyfile(char *sf,char *df);
            int MakeNdir(char *Dir);
            char filename[200][13],d[40],s[40],s1[40];
            struct ffblk ffblk;
            int done,i,j,l,len;
            i=0;
            done=findfirst(sfile,&ffblk,0);
            if (!done) strcpy(filename,ffblk.ff_name);
            while(!done)
            {
            done=findnext(&ffblk);
            if (!done)
            {
            i++;
            strcpy(filename,ffblk.ff_name);
            }
            }
            if (f2d)
            {
            Copyfile(sfile,dfile);
            return 1;
            }
            strcpy(s,sfile);
            l=strlen(sfile);
            for(j=l-1;j>=0;j--)
            if (s[j]=='\\')
            {
            s[j+1]=0;
            break;
            }

            /*拷貝一個文件*/
            int Copyfile(char *sf,char *df)
            {
            FILE *in,*out;
            char ch;
            in=0;
            out=0;
            if ((in=fopen(sf,"rb"))==NULL)
            exit(0);
            if ((out=fopen(df,"wb"))==NULL)
            exit(0);
            while(!feof(in))
            {
            ch=fgetc(in);
            if (ferror(in)) return 0;
            fputc(ch,out);
            if (ferror(out)) return 0;
            }
            fclose(in);
            fclose(out);
            return 1;
            }

            /*建立目錄*/
            int MakeNdir(char *Dir)
            {
            int i,l,j;
            char s[10][40];
            j=0;
            l=strlen(Dir);
            for(i=0;i<l;i++)
            if (Dir=='\\')
            {
            LEFT(s[j],Dir,i);
            j++;
            }
            strcpy(s[j],Dir);
            for(i=0;i<=j;i++)
            if (access(s,0)) mkdir(s);
            return 1;
            }

            /*得到目錄*/
            int GetDir(char *dirF,char dataK[][14])
            {
            struct ffblk ffblk;
            int done;
            int i;
            i=0;
            done=findfirst(dirF,&ffblk,FA_DIREC);
            while(!done)
            {
            if (ffblk.ff_attrib==16||ffblk.ff_attrib==17)
            {
            strcpy(dataK,ffblk.ff_name);
            strcat(dataK,"\\");
            i++;
            }
            done=findnext(&ffblk);
            }
            return i;
            }

            /*得到文件名*/
            int GetFile(char *dirF,char dataK[][14])
            {
            struct ffblk ffblk;
            int done;
            int i;
            i=0;
            done=findfirst(dirF,&ffblk,0);
            while(!done)
            {
            strcpy(dataK,ffblk.ff_name);
            done=findnext(&ffblk);
            i++;
            }
            return i;
            }
            
            /*任意兩個正整數相加(<80位)*/
            /*參數說明:numA,numB分別為加數和被加數,result存放相加后的結果*/
            void add(char *numA,char *numB,char *result)
            {
            int i,j,a,b,c,jw,Alen,Blen; /*定義變量*/
            char num[81];
            char numC[81]; /*定義新的字串,長度與numA相同*/
            char ch;
            char s[1];
            num[0]=0;
            numC[0]=0;
            if (strlen(numA)>=80) return;
            if (strlen(numB)>=80) return;
            for(i=0;i<strlen(numA);i++) /*判斷輸入數是否非法*/
            if (!isdigit(numA)) return; /*如果非法返回結果為空*/
            for(i=0;i<strlen(numB);i++)
            if (!isdigit(numB)) return;
            if (strlen(numA)<strlen(numB)) /*將較大的數放入numA中*/
            {
            strcpy(num,numA);
            strcpy(numA,numB);
            strcpy(numB,num);
            num[0]=0;
            }
            Alen=strlen(numA);
            Blen=strlen(numB);
            strcpy(numC,numB);
            for(i=0;i<Alen;i++)
            numC[Alen-i-1]=numC[Blen-i-1];
            for(i=0;i<Alen-Blen;i++) /*在numC中插入n個0,使其長度等于numA*/
            numC='0';
            jw=0; /*進位*/
            for(i=0;i<Alen;i++)
            {
            s[0]=numA[Alen-i-1];
            s[1]=0;
            a=atoi(s);
            s[0]=numC[Alen-i-1];
            s[1]=0;
            b=atoi(s);
            c=a+b+jw;
            if (c>=10)
            {
            jw=1;
            c=c-10;
            }
            else jw=0;
            itoa(c,s,10);
            num=s[0];
            }
            if (jw==1) {num='1';num[i+1]=0;}
            else num=0;
            j=strlen(num);
            for(i=0;i<j/2;i++)
            {
            ch=num;
            num=num[j-i-1]; /*將num反轉*/
            num[j-i-1]=ch;
            }
            strcpy(result,num);
            return; /*返回相加結果*/
            }

            /*任意兩個正整數相乘*/
            /*參數說明:numA,numB 分別為乘數和被乘數,resultm存放積*/
            void mult(char *numA,char *numB,char *resultm)
            {
            int i,j,k,l,m,a,b,c,jw,Alen,Blen,f; /*定義變量*/
            char resulta[82];
            char num[161];
            char ch;
            char s[1];
            num[0]=0;
            f=0;
            if (strlen(numA)>=80) return;
            if (strlen(numB)>=80) return;
            for(i=0;i<strlen(numA);i++) /*判斷輸入數是否非法*/
            if (!isdigit(numA)) return; /*如果非法返回結果為空*/
            for(i=0;i<strlen(numB);i++)
            if (!isdigit(numB)) return;
            if (strlen(numA)<strlen(numB)) /*將較大的數放入numA中*/
            {
            strcpy(num,numA);
            strcpy(numA,numB);
            strcpy(numB,num);
            num[0]=0;
            }
            Alen=strlen(numA);
            Blen=strlen(numB);
            strcpy(resultm,"0");
            for(i=0;i<Blen;i++)
            {
            s[0]=numB[Blen-i-1];
            s[1]=0;
            c=atoi(s);
            strcpy(resulta,numA);
            if (c==0) strcpy(resulta,"0");
            for(j=0;j<c-1;j++) {add(resulta,numA,resulta);}
            l=strlen(resulta);
            for(k=0;k<i;k++)
            {
            resulta[l+k]='0';
            resulta[l+k+1]=0;
            }
            add(resultm,resulta,resultm);
            }
            }
            Posted on 2005-12-02 16:08 艾凡赫 閱讀(485) 評論(0)  編輯 收藏 引用 所屬分類: C語言
            久久人人超碰精品CAOPOREN| 婷婷久久久亚洲欧洲日产国码AV | 久久久久这里只有精品 | 2020久久精品国产免费| 久久婷婷五月综合97色一本一本 | 91久久精品无码一区二区毛片| 2022年国产精品久久久久| 国产精品久久久久久| 狠狠色丁香婷婷久久综合不卡| 2020久久精品国产免费| 精品久久久久久无码人妻热| 亚洲国产婷婷香蕉久久久久久| 久久99热这里只有精品国产| 久久久一本精品99久久精品66| 久久99精品久久久久久hb无码| 精品精品国产自在久久高清| 久久国产精品一区| 亚洲香蕉网久久综合影视 | 久久久精品久久久久特色影视| 亚洲va久久久久| 精品久久久久久久| 国产精品乱码久久久久久软件| 久久精品国产亚洲AV香蕉| 久久99精品久久久久久噜噜 | 久久久99精品成人片中文字幕| 久久久久精品国产亚洲AV无码| 99精品久久精品| 国产精品久久久久蜜芽| 亚洲国产天堂久久综合网站| 中文成人无码精品久久久不卡 | 99久久精品免费国产大片| 一本一本久久A久久综合精品| 久久九九久精品国产免费直播| .精品久久久麻豆国产精品| 久久午夜免费视频| 99久久精品无码一区二区毛片| 久久精品国产2020| 久久99这里只有精品国产| 久久99精品九九九久久婷婷| 狠狠干狠狠久久| 国产韩国精品一区二区三区久久|