亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dos下的屏幕編輯器.txt

?? 這里是C語言與數據結構的課程設計與實驗的程序,以及一些程序的原代碼.
?? TXT
?? 第 1 頁 / 共 2 頁
字號:
#include "stdio.h"
#include "windows.h"
#include "stdio.h"
#include "crtdbg.h"
#include "string.h"

#define DIR_UP -1
#define DIR_DOWN 1

#define FORE_BLACK 0
#define FORE_BLUE FOREGROUND_BLUE
#define FORE_GREEN FOREGROUND_GREEN
#define FORE_RED FOREGROUND_RED
#define FORE_WHITE (FORE_BLUE|FORE_GREEN|FORE_RED)
#define FORE_MASK (FORE_BLUE|FORE_GREEN|FORE_RED|FOREGROUND_INTENSITY)

#define BACK_BLACK 0
#define BACK_BLUE BACKGROUND_BLUE
#define BACK_GREEN BACKGROUND_GREEN
#define BACK_RED BACKGROUND_RED
#define BACK_WHITE (BACK_BLUE|BACK_GREEN|BACK_RED)
#define BACK_MASK (BACK_BLUE|BACK_GREEN|BACK_RED|BACKGROUND_INTENSITY)

static HANDLE stdinput=INVALID_HANDLE_VALUE , stdoutput=INVALID_HANDLE_VALUE;

void InitIoSystem();
void GetChar(char * pscancode , char * pasciicode);
void DisplayChar(char ch);
void SetCursorXY(int x , int y);

void GetCursorXY(int * px ,int * py);
unsigned short GetTextForeColor(void);
unsigned short GetTextBackColor(void);

void SetTextForeColor(unsigned short forecolor);
void SetTextBackColor(unsigned short backcolor);

void ScrollScreen(int dir , unsigned int linecount , int left , int top , int right , int bottom);

void DisplayCursor(int flag);
void DisplayString(char *str);

void InitIoSystem()
{
 COORD cursorinitpos={0 , 0};
 COORD buffersize={80 , 25};
 stdinput=GetStdHandle(STD_INPUT_HANDLE);
 _ASSERTE(stdinput!=INVALID_HANDLE_VALUE);
 stdoutput=GetStdHandle(STD_OUTPUT_HANDLE);
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(SetConsoleCursorPosition(stdoutput , cursorinitpos)!=0);
 SetTextForeColor(FORE_WHITE);
 SetTextBackColor(BACK_BLACK);
 _ASSERTE(SetConsoleScreenBufferSize(stdoutput , buffersize)!=0);
}

void GetChar(char * pscancode , char * pasciicode)
{
 INPUT_RECORD inputrecord;
 unsigned long inputcount;
 _ASSERTE(pscancode!=NULL);
 _ASSERTE(pasciicode!=NULL);
 while (1)
 {
  _ASSERTE(stdinput!=INVALID_HANDLE_VALUE);
  _ASSERTE(ReadConsoleInput(stdinput , &inputrecord , 1 , &inputcount)!=0);
  if (inputrecord.EventType==KEY_EVENT && inputrecord.Event.KeyEvent.bKeyDown)
  {
    *pscancode = (char)inputrecord.Event.KeyEvent.wVirtualScanCode,
    *pasciicode = inputrecord.Event.KeyEvent.uChar.AsciiChar;
    if (inputrecord.Event.KeyEvent.dwControlKeyState&(RIGHT_ALT_PRESSED|RIGHT_CTRL_PRESSED|LEFT_ALT_PRESSED|LEFT_CTRL_PRESSED))
     continue;
    else if (*pasciicode==0&&(inputrecord.Event.KeyEvent.dwControlKeyState&SHIFT_PRESSED))
     continue;
    else
     break;
  }
 }
}

void DisplayChar(char ch)
{
 unsigned long outputcount;
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(WriteConsole(stdoutput , &ch , 1 , &outputcount , NULL)!=0);
}

void SetCursorXY(int x ,int y)
{
 COORD cursorpos={x , y};
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(x>=0&&x<80&&y>=0&&y<25);
 _ASSERTE(SetConsoleCursorPosition(stdoutput , cursorpos)!=0);
}

void GetCursorXY(int * px , int * py)
{
 CONSOLE_SCREEN_BUFFER_INFO screenbufferinfo;
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(px!=NULL&&py!=NULL);
 _ASSERTE(GetConsoleScreenBufferInfo(stdoutput , &screenbufferinfo)!=0);
 *px=screenbufferinfo.dwCursorPosition.X;
 *py=screenbufferinfo.dwCursorPosition.Y;
}

unsigned short GetTextForeColor(void)
{
 CONSOLE_SCREEN_BUFFER_INFO screenbufferinfo;
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(GetConsoleScreenBufferInfo(stdoutput , &screenbufferinfo)!=0);
 return screenbufferinfo.wAttributes & FORE_MASK;
}

unsigned short GetTextBackColor(void)
{
 CONSOLE_SCREEN_BUFFER_INFO screenbufferinfo;
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(GetConsoleScreenBufferInfo(stdoutput , &screenbufferinfo)!=0);
 return screenbufferinfo.wAttributes & BACK_MASK;
}

void SetTextForeColor(unsigned short forecolor)
{
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(SetConsoleTextAttribute(stdoutput , (WORD)(forecolor|GetTextBackColor()))!=0);
}

void SetTextBackColor(unsigned short backcolor)
{
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(SetConsoleTextAttribute(stdoutput , (WORD)(GetTextForeColor()|backcolor))!=0);
}

void ScrollScreen(int dir , unsigned int linecount , int left ,int top ,int right , int bottom)
{
 SMALL_RECT rect={left , top , right , bottom};
 COORD destcoord={left , top+dir*linecount};
 CHAR_INFO fillinfo={' ' ,};
 _ASSERTE(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERTE(left>=0&&top>=0&&right>=0&&bottom>=0&&left<80&&right<80&&top<25&&bottom<25);
 fillinfo.Attributes=GetTextForeColor() | GetTextBackColor();
 _ASSERTE(ScrollConsoleScreenBuffer(stdoutput , &rect , NULL , destcoord , &fillinfo)!=0);
}

void DisplayCursor(int flag)
{
 CONSOLE_CURSOR_INFO curinfo;
 _ASSERT(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERT(GetConsoleCursorInfo(stdoutput , &curinfo)!=0);
 curinfo.bVisible=(flag?TRUE:FALSE);
 _ASSERT(SetConsoleCursorInfo(stdoutput , &curinfo)!=0);
}

void DisplayString(char *str)
{
 unsigned long outputcount;
 _ASSERT(stdoutput!=INVALID_HANDLE_VALUE);
 _ASSERT(str!=NULL);
 _ASSERT(WriteConsole(stdoutput , str , strlen(str) , &outputcount , NULL)!=0);
}


#define MaxSize 79
#define MaxLine 24
#define Insert 1
#define Overwrite (-1)

FILE *fp;
char filename[20]="newfile";
char filename1[20];

typedef struct SNode 
{
 struct SNode *next,*prior;
 char String[MaxSize+1];
}SNode;


void openfile();
void newfile();
void savefile();
void quit();
int nextrow();
int backspace();
int uprow();
int downrow();
int downpage();
int uppage();   
int deletechar();
int insertchar(char b);


SNode * HeadNode,*TailNode,*rowp;
int State=Insert;
int sign=0,flag=0,flag1=0,sign1=0,sign2=0,sign3=0;
int x0=0;

void main(void)
{
 int x=0,y=0,i;
 char a,b;
 InitIoSystem();
 if(!(HeadNode=TailNode=rowp=(SNode*)malloc(sizeof(SNode))))
  exit(0);
 HeadNode->String [0]=0;
 HeadNode->next=HeadNode->prior=NULL;
 
 SetCursorXY(0,0);
 
 SetTextBackColor(BACK_BLUE);
 for(i=0;i<MaxSize;i++)
  printf(" ");
 SetCursorXY(0,0);
 printf("%s",filename);
 SetCursorXY(0,MaxLine);
 for(i=0;i<MaxSize;i++)
  printf(" ");
 SetCursorXY(0,MaxLine);
 printf("insert       F1-OPEN F2-NEW F3-SAVE F4-CLOSE F5-QUIT");
 
 SetCursorXY(0,1);
 SetTextBackColor(BACK_BLACK);
 while(1)
 {
  
  sign=0;
  flag=0;
  sign1=0;
  sign2=0;
  sign3=0;
  GetChar(&a,&b);
  GetCursorXY(&x,&y);
  if(a==1)//ESC
   ;
  
  else if(a==28)//ENTER
   nextrow();
  else if(a==14)
   backspace();
  else if(a==59)//F1
   openfile();
  else if(a==60)//F2
   newfile();
  else if(a==61)//F3
   savefile();
  else if(a==62)//F4
   newfile();
  else if(a==63)//F5
   
  {
   quit();
   if(flag1==1)
    return;
  }
  else if(a==71)//HOME
   SetCursorXY(0,y);
  else if(a==79)//END
   if(rowp->String[0]<MaxSize)
    SetCursorXY(rowp->String[0],y );
   else 
    SetCursorXY(MaxSize-1,y );
   else if(a==72)//UP
    uprow();
   else if(a==80)//DOWN
    downrow();
   else if(a==75)//LEFT
   {
    if(x==0)
    {
     int i;
     i=uprow();//if i=0,top in the screen and can scroll
     if(i!=-1)//if i=-1,can't scroll
      if(rowp->String[0]<MaxSize)
       SetCursorXY(rowp->String[0],y-i);
      else 
       SetCursorXY(MaxSize-1,y-i);
    }
    else 
     SetCursorXY(x-1,y);
   }   file://left 
   
   else if(a==77)//RIGHT
   {       
    if(x==rowp->String[0]-1&&!rowp->next)
     SetCursorXY(x+1,y);
    else if(x>=rowp->String[0]-1)
    {
     int i;
     i=downrow();//if i=1 common;if  i=0 bottom on the screen
     if(i!=-1)//if i=-1,can't scroll
      SetCursorXY(0,y+i);
    }     
    else
     SetCursorXY(x+1,y);
   }
   else if(a==81)//PAGE DOWN
   {
    DisplayCursor(0);
    downpage();  
    DisplayCursor(1);
   }
   else if(a==73)//PAGE UP
   { 
    DisplayCursor(0);
    uppage();
    DisplayCursor(1);   
   }
   else if(a==82)//INSERT
    
   {
    State*=-1;
    if(State!=Insert)
    {
     SetCursorXY(0,MaxLine);
     SetTextBackColor(BACK_BLUE);
     printf("overwrite");
     SetCursorXY(x,y);
     SetTextBackColor(BACK_BLACK);
    }
    else
    {
     SetCursorXY(0,MaxLine);
     SetTextBackColor(BACK_BLUE);
     printf("insert   ");
     SetCursorXY(x,y);
     SetTextBackColor(BACK_BLACK);
    }
   }
   else if(a==83)//DELETE
    deletechar();
   
   
   
   else if(b)
    
    insertchar(b);  
   
   
 }//while(1)
}//main()

int insertchar(char ch)
{ 
 int i;   
 int x=0,y=0; 
 char ch1;                                              
 GetCursorXY(&x,&y);
 if(sign3)
  x=x0;
 
 if(!rowp)
 {
  if(!(TailNode->next=rowp=(SNode *)malloc(sizeof(SNode))))
   exit(0);
  TailNode->next->prior=TailNode; 
  TailNode->next->next=NULL;
  TailNode->next->String[0]=0;
  TailNode=TailNode->next;
  
 }
 if(State==Overwrite&&ch!='\t')
 {
  
  
  
  rowp->String[x+1]=ch;
  DisplayChar(ch);
  if(x==rowp->String[0])
   rowp->String[0]++;
  if(x==MaxSize-1)
  {
   if(y<MaxLine-1)
    SetCursorXY(0,y+1);
   else
   {
    ScrollScreen(DIR_UP,1,0,2,MaxSize-1,MaxLine-1);
    SetCursorXY(0,MaxLine-1);
   }
   rowp=rowp->next;
   
  }
  return 0 ;
 }
 
 if(ch=='\t')//處理“TAB”鍵,在該行還剩>=8個空間時插入8個空格
 {
  if(State==Overwrite)
   return 0;
  if(x<MaxSize-8)
   for(i=0;i<8;i++)
    insertchar(' ');
   else 
    for(i=x;i<MaxSize-1;i++)
     insertchar(' ');
    return 0 ;
 }
 if(rowp->String[0]<MaxSize)
 {
  for(i=rowp->String[0];i>x;i--)//元素后移
   rowp->String[i+1]=rowp->String[i];
  rowp->String[x+1]=ch;
  rowp->String[0]++;
  if(sign3)
   return 1;
  
  DisplayChar(ch);
  for(i=x+2;i<=rowp->String[0];i++)
   DisplayChar(rowp->String[i]);
  
  if(x<MaxSize-1)
   SetCursorXY(x+1,y);
  else if(y<MaxLine-1)
  {
   SetCursorXY(0,y+1);
   rowp=rowp->next;
  } 
  else
  { 
   ScrollScreen(DIR_UP,1,0,2,MaxSize-1,MaxLine-1);
   SetCursorXY(0,MaxLine-1);
   rowp=rowp->next;
  }
  return 1;
 }
 else if(rowp->String[0]==MaxSize)
 {char ch2;
 if(y!=MaxLine-1)//不在屏幕最后一行插入
 { 
  ch1=rowp->String[rowp->String[0>;
  SetCursorXY(0,y+1);
  rowp=rowp->next;
  insertchar(ch1);
  rowp=rowp->prior;
  rowp->String[0]--;
  if(flag&&sign1)
   y--;
  sign1=1;
  if(y==0)
   sign3=1;
  if(!sign3)
   SetCursorXY(x,y);
  else x0=x;
  
  insertchar(ch);
  if(sign3)
   rowp=rowp->next;
 }
 else file://在最后一行插入
 {
  if(flag)
  {
   
   SNode *p1=rowp;
   sign2=1;
   DisplayChar(ch);
   
   if(rowp->String[0]<MaxSize)
   {
    for(i=1;i<=rowp->String[0];i++)
     
     DisplayChar(rowp->String[i]);
    
    for(i=rowp->String[0];i>0;i--)
     rowp->String[i+1]=rowp->String[i];
    
    rowp->String[1]=ch;
    rowp->String[0]++;
   }
   else
   {
    for(i=1;i<MaxSize;i++)
     DisplayChar(rowp->String[i]);
    ch2=rowp->String[MaxSize];  
    for(i=MaxSize-1;i>0;i--)
     rowp->String[i+1]=rowp->String[i];
    rowp->String[1]=ch;
    
    rowp=rowp->next;
pp:;
   
   if(!rowp)
   {
    if(!(TailNode->next=rowp=(SNode *)malloc(sizeof(SNode))))
     exit(0);
    TailNode->next->prior=TailNode; 
    TailNode->next->next=NULL;
    TailNode->next->String[0]=0;
    TailNode=TailNode->next;
    rowp->String[0]=1;
    rowp->String[1]=ch2;
    rowp=p1;
    return 1;
   }
   
   if(rowp->String[0]<MaxSize)
    
   { for(i=rowp->String[0];i>0;i--)
   rowp->String[i+1]=rowp->String[i];
   
   
   rowp->String[1]=ch2;
   rowp->String[0]++;
   rowp=p1;
   return 1;
   } 
   else 
   {
    char ch3=rowp->String[MaxSize];
    for(i=MaxSize-1;i>0;i--)
     rowp->String[i+1]=rowp->String[i];
    rowp->String[1]=ch2;
    ch2=ch3;
    rowp=rowp->next;
    goto pp;
   }
   
   }
  }
  ScrollScreen(DIR_UP,1,0,2,MaxSize-1,MaxLine-1);
  flag=1;
  if(rowp->next)
  { 
   SetCursorXY(0,MaxLine-1);
   for(i=0;i<rowp->next->String[0];i++)
    DisplayChar(rowp->next->String[i+1]);
  }
  SetCursorXY(x,y-1);
  insertchar(ch);
  
  
 }
 
 
 return 1;
}
return 1;
}


int backspace(void)
{
 int x=0,y=0;
 int i;
 GetCursorXY(&x,&y);
 if(x!=0)
 {
  SetCursorXY(x-1,y);
  DisplayChar(' ');
  SetCursorXY(x-1,y);
  for(i=x;i<rowp->String[0];i++)
  {
   rowp->String[i]=rowp->String[i+1];
   DisplayChar(rowp->String[i+1]);
  }
  DisplayChar(' ');
  SetCursorXY(x-1,y);
  rowp->String[0]--;
 }//if
 
 else//x=0
 { if(!rowp&&TailNode)
 {
  if(TailNode->String[0]<MaxSize)
   
   SetCursorXY(TailNode->String[0],y-1);
  else 
  {
   TailNode->String[0]--;
   SetCursorXY(TailNode->String[0],y-1);
   DisplayChar(' ');
   SetCursorXY(TailNode->String[0],y-1);
  }
  rowp=TailNode;
  return 1;
 }
 else if(!rowp->prior)
  return 1; 
 
 
 else if(rowp->String[0]>=0&&y>1)//長度不為零,前面有行,不要滾屏
 {
  int y0=y;
  SNode * pp=rowp,*rowp0=rowp->prior,*rowp1;
  if(rowp->String[0]+rowp->prior->String[0]<=MaxSize)
  {
   int length=rowp->prior->String[0];
   SetCursorXY(rowp->prior->String[0],y-1);
   for(i=rowp->prior->String[0]+1;i<=rowp->String[0]+rowp->prior->String[0];i++)
   {
    rowp->prior->String[i]=rowp->String[i-rowp->prior->String[0>;
    DisplayChar(rowp->String[i-rowp->prior->String[0>);
   }
   SetCursorXY(0,y);   
   rowp->prior->String[0]+=rowp->String[0];   
   for(i=0;i<rowp->String[0];i++)
    DisplayChar(' ');
   rowp->String[0]=0;
   SetCursorXY(0,y);
   
   if(!rowp->next)
   {      
    rowp->prior->next=NULL; 
    TailNode=rowp->prior;
    rowp=rowp->prior;
    if(length<MaxSize)
    {
     SetCursorXY(length,y-1);
    }
    else
    {
     rowp->String[0]--;
     SetCursorXY(length-1,y-1);
     DisplayChar(' ');
     SetCursorXY(length-1,y-1);
    }
    
   }
   else
   {
    rowp->prior->next=rowp->next;
    rowp->next->prior=rowp->prior;
    rowp=rowp->next;
    rowp1=rowp;
    ScrollScreen(DIR_UP,1,0,y+1,MaxSize-1,MaxLine-1);
    for(i=y;i<MaxLine-1;i++)
     if(rowp)
      rowp=rowp->next;
     if(!rowp)
      rowp=rowp1;
     else
     {
      SetCursorXY(0,MaxLine-1);
      for(i=1;i<=rowp->String[0];i++)
       DisplayChar(rowp->String[i]);
     }
     rowp=rowp1;
     
     if(length<MaxSize)
     {
      SetCursorXY(length,y-1);
      rowp=rowp->prior;
     }
     else
      SetCursorXY(0,y);
     
     
   }
  }//if
  else//移上去部分
  {   if(rowp->prior->String[0]<MaxSize)
  {
   int length=rowp->prior->String[0];
   SetCursorXY(rowp->prior->String[0],y-1);
   for(i=rowp->prior->String[0]+1;i<=MaxSize;i++)
   {
    rowp->prior->String[i]=rowp->String[i-rowp->prior->String[0>;
    DisplayChar(rowp->String[i-rowp->prior->String[0>);
   }//for
   SetCursorXY(0,y);
   for(i=1;i<=rowp->String[0]+rowp->prior->String[0]-MaxSize;i++)
    DisplayChar(rowp->String[i]=rowp->String[i+MaxSize-rowp->prior->String[0>);
   for(;i<=rowp->String[0];i++)
    DisplayChar(' ');   
   rowp->String[0]-=MaxSize-rowp->prior->String[0];
   rowp->prior->String[0]=MaxSize;
   SetCursorXY(length,y-1);
   rowp=rowp->prior;
  }
  else
  {
   rowp=rowp->prior;
   rowp->String[MaxSize]=rowp->next->String[1];
   
   
   
   SetCursorXY(0,y);
   for(i=1;i<rowp->next->String[0];i++)
   {
    rowp->next->String[i]=rowp->next->String[i+1];
    DisplayChar(rowp->next->String[i]);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久久影视| 国产精品理伦片| 91在线视频免费91| 免费视频最近日韩| 一区二区三区中文在线观看| 欧美v国产在线一区二区三区| av在线播放成人| 国产在线看一区| 午夜视频久久久久久| 亚洲视频免费观看| 久久综合九色综合欧美98| 欧美日韩在线免费视频| 成人app下载| 国产最新精品精品你懂的| 亚洲成a人片在线观看中文| 国产精品免费人成网站| 久久亚洲免费视频| 日韩一区二区中文字幕| 精品视频在线看| 在线观看亚洲成人| 99精品久久久久久| 成人性生交大片免费看视频在线 | 欧美一级黄色片| 在线精品视频一区二区三四| 欧美在线观看一区二区| 国产999精品久久久久久| 麻豆精品一二三| 日韩影视精彩在线| 亚洲成人av福利| 性欧美大战久久久久久久久| 一区二区三区电影在线播| 中文字幕中文字幕在线一区| 国产午夜精品一区二区三区视频| 日韩欧美你懂的| 日韩一二三区视频| 欧美一区二区视频网站| 亚洲国产精品激情在线观看 | 日韩精品一区二区三区视频| 欧美日韩国产一二三| 欧美午夜在线观看| 欧美色爱综合网| 欧美伦理电影网| 91精品久久久久久久99蜜桃| 91精品久久久久久久91蜜桃| 欧美一区二区三区在| 日韩一卡二卡三卡四卡| 日韩欧美一二三四区| 亚洲精品在线电影| 国产日韩在线不卡| 国产精品久久久久婷婷二区次| 中文字幕日韩一区二区| 亚洲欧美一区二区三区极速播放| 亚洲欧美日韩成人高清在线一区| 亚洲精品高清在线观看| 亚洲午夜免费视频| 蜜桃在线一区二区三区| 国产一区二区三区电影在线观看 | 欧美极品aⅴ影院| 国产精品麻豆久久久| 亚洲乱码中文字幕综合| 亚洲sss视频在线视频| 日韩 欧美一区二区三区| 精品一区二区三区免费播放| 国产高清一区日本| 92国产精品观看| 欧美美女激情18p| 精品国精品自拍自在线| 国产精品国模大尺度视频| 亚洲精品乱码久久久久久黑人| 午夜不卡av免费| 国产成人av在线影院| 欧亚洲嫩模精品一区三区| 日韩一级黄色大片| 国产精品久久久久久久久久免费看 | 国产精品99久久久| 99精品视频在线免费观看| 欧美日韩欧美一区二区| 久久久午夜精品理论片中文字幕| ...xxx性欧美| 蜜乳av一区二区| 99久久精品免费| 欧美一区二区三区思思人| 国产视频一区二区在线| 亚洲第一在线综合网站| 国产激情精品久久久第一区二区 | 久久99精品国产麻豆婷婷| 成人av网址在线| 这里只有精品电影| 国产精品污网站| 日本aⅴ亚洲精品中文乱码| 成人一区二区三区| 91精品久久久久久久91蜜桃| 国产精品你懂的| jlzzjlzz欧美大全| 欧美一区二区免费视频| 1024成人网| 国产精品中文字幕欧美| 欧美日韩国产高清一区二区| 国产欧美精品一区| 免费看欧美女人艹b| 91尤物视频在线观看| 精品少妇一区二区三区日产乱码| 亚洲精品久久7777| 成人爽a毛片一区二区免费| 欧美日韩aaa| 亚洲欧美偷拍三级| 国产成人av电影在线| 日韩美一区二区三区| 亚洲综合一区二区三区| 成人免费精品视频| 精品国产一区二区国模嫣然| 亚洲电影激情视频网站| 91美女福利视频| 中文字幕巨乱亚洲| 狠狠色狠狠色综合系列| 欧美一区二区私人影院日本| 亚洲永久精品国产| 一道本成人在线| 自拍偷拍欧美精品| 成人午夜电影网站| 国产欧美精品日韩区二区麻豆天美| 午夜精品123| 欧美日韩色一区| 夜夜精品视频一区二区| 色香色香欲天天天影视综合网| 欧美激情综合五月色丁香| 国产揄拍国内精品对白| 精品国产乱子伦一区| 美女高潮久久久| 欧美一级夜夜爽| 日本欧美大码aⅴ在线播放| 欧美日韩免费高清一区色橹橹| 一区二区三区四区在线播放| 91麻豆swag| 亚洲综合色婷婷| 欧美日韩国产一区| 视频一区在线播放| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品福利一区| 成人午夜av在线| 中文字幕一区二区三区在线不卡| 高清shemale亚洲人妖| 国产日韩精品一区二区三区| 国产乱码精品一区二区三区忘忧草| 26uuu欧美| 粉嫩欧美一区二区三区高清影视| 国产女主播一区| 9i看片成人免费高清| 亚洲欧美色图小说| 欧美中文字幕一区二区三区亚洲| 亚洲一二三区视频在线观看| 欧美三级视频在线观看| 日韩激情一区二区| 精品欧美一区二区久久| 国精产品一区一区三区mba视频| 久久精品欧美一区二区三区不卡| 国产成人午夜精品5599| 成人欧美一区二区三区黑人麻豆 | 亚洲男女一区二区三区| 91国产成人在线| 日韩av不卡一区二区| 久久日韩精品一区二区五区| 国产不卡视频在线播放| 亚洲精品视频免费看| 欧美高清激情brazzers| 国内精品在线播放| 亚洲日本青草视频在线怡红院| 色国产综合视频| 免费观看日韩av| 国产精品久久久久久户外露出| 91国产免费看| 久久www免费人成看片高清| 国产精品乱人伦一区二区| 欧美日韩一区二区电影| 精品亚洲aⅴ乱码一区二区三区| 国产精品三级av| 欧美日韩精品一区二区天天拍小说| 久久9热精品视频| 亚洲精品写真福利| 精品免费一区二区三区| 一本一道久久a久久精品综合蜜臀| 香蕉成人伊视频在线观看| 久久人人97超碰com| 欧洲视频一区二区| 国产经典欧美精品| 丝袜诱惑亚洲看片| 日本一区二区三区在线不卡| 欧美日韩久久不卡| 成人深夜福利app| 美脚の诱脚舐め脚责91| 亚洲人精品午夜| 久久久久久久网| 欧美精品1区2区| 91视视频在线直接观看在线看网页在线看| 日韩高清在线一区| 亚洲免费观看高清在线观看| 2023国产精品| 91精品综合久久久久久| 91麻豆自制传媒国产之光| 国产精品911|