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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? tfscan.c

?? 關(guān)聯(lián)模式的Apriori的vc實現(xiàn)
?? C
字號:
/*----------------------------------------------------------------------  File    : tfscan.c  Contents: table file scanner management  Author  : Christian Borgelt  History : 04.01.1998 file created            11.03.1998 additional character flags enabled            12.08.1998 function tfs_copy added            01.09.1998 several assertions added            27.09.1998 function tfs_getfld improved            21.10.1998 bug in tfs_sgetc removed            26.11.1998 some function parameters changed to const            04.02.1999 long int changed to int            16.11.1999 number of characters cleared for an empty field            01.12.2000 '\r' made a default blank character            14.07.2001 tfs_sgetc modified, tfs_buf and tfs_err added            19.08.2001 last delimiter stored in TFSCAN structure            11.02.2002 tfs_skip, tfs_reccnt, and tfs_reset added----------------------------------------------------------------------*/#include <stdio.h>#include <stdlib.h>#include <assert.h>#include "tfscan.h"#ifdef STORAGE#include "storage.h"#endif/*----------------------------------------------------------------------  Preprocessor Definitions----------------------------------------------------------------------*//* --- functions --- */#define isblank(c)    tfs_istype(tfs, TFS_BLANK,  c)#define isfldsep(c)   tfs_istype(tfs, TFS_FLDSEP, c)#define isrecsep(c)   tfs_istype(tfs, TFS_RECSEP, c)#define issep(c)      tfs_istype(tfs, TFS_FLDSEP|TFS_RECSEP, c)#define iscomment(c)  tfs_istype(tfs, TFS_COMMENT, c)/*----------------------------------------------------------------------  Functions----------------------------------------------------------------------*/TFSCAN* tfs_create (void){                               /* --- create a table file scanner */  TFSCAN *tfs;                  /* created table file scanner */  int    i;                     /* loop variable */  char   *p;                    /* to traverse character flags */  tfs = (TFSCAN*)malloc(sizeof(TFSCAN));  if (!tfs) return NULL;        /* allocate memory and */  tfs->reccnt = 0;              /* initialize the fields */  tfs->delim  = TFS_EOF;  for (p = tfs->cflags +256, i = 256; --i >= 0; )    *--p = '\0';                /* initialize the character flags */  tfs->cflags['\n'] = TFS_RECSEP;  tfs->cflags['\t'] = tfs->cflags[' '] = TFS_BLANK|TFS_FLDSEP;  tfs->cflags['\r'] = TFS_BLANK;  return tfs;                   /* return created table file scanner */}  /* tfs_create() *//*--------------------------------------------------------------------*/TFSCAN* tfs_dup (const TFSCAN *tfs){                               /* --- duplicate a table file scanner */  TFSCAN *dup;                  /* created duplicate */  dup = (TFSCAN*)malloc(sizeof(TFSCAN));  if (!dup) return NULL;        /* create a new table file scanner */  tfs_copy(dup, tfs);           /* and copy source into it */  return dup;                   /* return created duplicate */}  /* tfs_dup() *//*--------------------------------------------------------------------*/void tfs_copy (TFSCAN *dst, const TFSCAN *src){                               /* --- copy a table file scanner */  int  i;                       /* loop variable */  char *d; const char *s;       /* to traverse the character flags */  assert(src && dst);           /* check arguments */  s = src->cflags +256; d = dst->cflags +256;  for (i = 256; --i >= 0; ) *--d = *--s;}  /* tfs_copy() */             /* copy character flags *//*--------------------------------------------------------------------*/int tfs_sgetc (TFSCAN *tfs, const char *s){                               /* --- get character from string */  int c, code;                  /* character and character code */  if (s) tfs->s = s;            /* if a new string is given, note it */  if (*tfs->s == '\0')          /* if at the end of the old string, */    return -1;                  /* abort the function */  c = (unsigned char)*tfs->s++; /* get the next character */  if (c != '\\')                /* if no quoted character, */    return c;                   /* simply return the character */  c = (unsigned char)*tfs->s++; /* get the next character */  switch (c) {                  /* and evaluate it */    case 'a': return '\a';      /* 0x07 (BEL) */    case 'b': return '\b';      /* 0x08 (BS)  */    case 'f': return '\f';      /* 0x0c (FF)  */    case 'n': return '\n';      /* 0x0a (NL)  */    case 'r': return '\r';      /* 0x0d (CR)  */    case 't': return '\t';      /* 0x09 (HT)  */    case 'v': return '\v';      /* 0x0b (VT)  */    case '0': case '1': case '2': case '3':    case '4': case '5': case '6': case '7':      code = c -'0';            /* --- octal character code */      c    = *tfs->s;           /* get the next character */      if ((c >= '0') && (c <= '7')) code = (code << 3) +c -'0';      else return code;         /* decode second digit */      c    = *++tfs->s;         /* get the next character */      if ((c >= '0') && (c <= '7')) code = (code << 3) +c -'0';      else return c;            /* decode third digit */      tfs->s++;                 /* consume the decoded character */      return code & 0xff;       /* and return the character code */    case 'x':                   /* --- hexadecimal character code */      c = *tfs->s;              /* get the next character */      if      ((c >= '0') && (c <= '9')) code = c -'0';      else if ((c >= 'a') && (c <= 'f')) code = c -'a' +10;      else if ((c >= 'A') && (c <= 'F')) code = c -'A' +10;      else return 'x';          /* decode first digit */      c = *++tfs->s;            /* get the next character */      if      ((c >= '0') && (c <= '9')) code = (code << 4) +c -'0';      else if ((c >= 'a') && (c <= 'f')) code = (code << 4) +c -'a' +10;      else if ((c >= 'A') && (c <= 'F')) code = (code << 4) +c -'A' +10;      else return code;         /* decode second digit */      tfs->s++;                 /* consume the decoded character */      return code;              /* and return the character code */    default:                    /* non-function characters */      if (*tfs->s == '\0') return '\\';      else                 return (unsigned char)*tfs->s++;  }                             /* return character or backslash */}  /* tfs_sgetc() *//*--------------------------------------------------------------------*/int tfs_chars (TFSCAN *tfs, int type, const char *chars){                               /* --- set characters */  int  i, c, d;                 /* loop variable, characters */  char *p;                      /* to traverse character flags */  assert(tfs);                  /* check argument */  if (!chars) return -1;        /* if no characters given, abort */  p = tfs->cflags +256;         /* clear character flags in type */  for (i = 256; --i >= 0; ) *--p &= (char)~type;  for (c = d = tfs_sgetc(tfs, chars); c >= 0; c = tfs_sgetc(tfs, NULL))    tfs->cflags[c] |= (char)type;  /* set character flags */  return (d >= 0) ? d : 0;      /* return first character */}  /* tfs_chars() *//*--------------------------------------------------------------------*/int tfs_getfld (TFSCAN *tfs, FILE *file, char *buf, int len){                               /* --- read a table field */  int  c;                       /* character read */  int  d;                       /* delimiter type */  char *p;                      /* to traverse the buffer */  assert(tfs && file && (!buf || (len >= 0)));  if (!buf) {                   /* if no buffer given, use internal */    buf = tfs->buf; len = TFS_SIZE; }  p = buf; *p = '\0';           /* clear the read buffer and */  tfs->cnt = 0;                 /* the number of characters read */  do {                          /* --- skip leading blanks */    c = getc(file);             /* get the next character */    if (c == EOF) return tfs->delim = (ferror(file)) ? -1 : TFS_EOF;  } while (isblank(c));         /* while the character is blank */  if (issep(c)) {               /* check for field/record separator */    if (isfldsep(c)) return tfs->delim = TFS_FLD;    tfs->reccnt++;   return tfs->delim = TFS_REC;  }                             /* if at end of record, count reocrd */  while (1) {                   /* --- read value */    if (len > 0) {              /* if the buffer is not full, */      len--; *p++ = (char)c; }  /* store the character in the buffer */    c = getc(file);             /* get the next character */    if (issep(c)) { d = (isfldsep(c))  ? TFS_FLD : TFS_REC; break; }    if (c == EOF) { d = (ferror(file)) ? -1      : TFS_EOF; break; }  }                             /* while character is no separator */  while (isblank(*--p));        /* --- remove trailing blanks */  *++p = '\0';                  /* terminate string in buffer */  tfs->cnt = (int)(p -buf);     /* store number of characters read */  if (d != TFS_FLD) {           /* if not at a field separator */    if (d == TFS_REC) tfs->reccnt++;    return tfs->delim = d;      /* if at end of record, count record, */  }                             /* and then abort the function */  while (isblank(c)) {          /* --- skip trailing blanks */    c = getc(file);             /* get the next character */    if (c == EOF) return tfs->delim = ferror(file) ? -1 : TFS_EOF;  }                             /* check for end of file */  if (isrecsep(c)) {            /* check for a record separator */    tfs->reccnt++; return tfs->delim = TFS_REC; }  if (!isfldsep(c))             /* put back character (may be */    ungetc(c, file);            /* necessary if blank = field sep.) */  return tfs->delim = TFS_FLD;  /* return the delimiter type */}  /* tfs_getfld() *//*--------------------------------------------------------------------*/int tfs_skip (TFSCAN *tfs, FILE *file){                               /* --- skip comment records */  int c;                        /* character read */  assert(tfs && file);          /* check the function arguments */  while (1) {                   /* comment read loop */    c = getc(file);             /* read the next character */    if (c == EOF) return tfs->delim = ferror(file) ? -1 : TFS_EOF;    if (!iscomment(c)) {        /* if the next char. is no comment, */      ungetc(c, file); return 0; }         /* put it back and abort */    while (!isrecsep(c)) {      /* while not at end of record */      c = fgetc(file);          /* get and check the next character */      if (c == EOF) return tfs->delim = ferror(file) ? -1 : TFS_EOF;    }                           /* consume/skip all characters */    tfs->reccnt++;              /* up to the end of the record */  }                             /* and count the record read */  return tfs->delim = TFS_REC;  /* return the delimiter type */}  /* tfs_skip() */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av网站大全| 精品国产乱码久久久久久牛牛| 欧美亚洲动漫另类| 精品国内二区三区| 亚洲成人综合在线| 成人免费视频国产在线观看| 欧美久久久久中文字幕| 国产精品久久免费看| 美女网站色91| 5566中文字幕一区二区电影| 最新高清无码专区| 国产iv一区二区三区| 91.xcao| 亚洲综合一区二区三区| 床上的激情91.| 国产偷国产偷亚洲高清人白洁 | 91国在线观看| 国产人成亚洲第一网站在线播放| 午夜精品福利一区二区三区av| 成人h精品动漫一区二区三区| 欧美va天堂va视频va在线| 午夜精品久久久久久久久| 色菇凉天天综合网| 国产精品国产精品国产专区不蜜| 国产一区二区91| 精品国产青草久久久久福利| 奇米一区二区三区| 欧美丰满一区二区免费视频| 亚洲h在线观看| 欧美日韩一级片在线观看| 一区二区日韩电影| 91国产免费观看| 亚洲尤物在线视频观看| 日本精品一区二区三区高清| 亚洲免费视频成人| 91久久精品一区二区| 亚洲欧美另类久久久精品| 色婷婷综合五月| 亚洲精品久久久蜜桃| 91国偷自产一区二区三区观看| 一区二区三区在线观看网站| 99久久伊人精品| 亚洲精品中文在线影院| 日本精品裸体写真集在线观看| 亚洲欧美日韩一区| 欧美日韩不卡在线| 喷水一区二区三区| 久久久九九九九| av在线不卡观看免费观看| 亚洲欧美综合另类在线卡通| 91久久香蕉国产日韩欧美9色| 亚洲成在线观看| 久久综合色8888| 成人深夜在线观看| 一区二区不卡在线视频 午夜欧美不卡在| 在线影视一区二区三区| 视频在线在亚洲| 久久天堂av综合合色蜜桃网| 99免费精品在线观看| 亚洲电影中文字幕在线观看| 日韩欧美亚洲一区二区| 国产精品亚洲а∨天堂免在线| 亚洲少妇屁股交4| 欧美精品久久久久久久多人混战| 九九精品一区二区| 亚洲精品免费在线| 欧美一卡二卡三卡四卡| 国产成人aaaa| 亚洲h在线观看| 国产精品美女久久久久久2018| 在线观看亚洲精品| 国产自产高清不卡| 亚洲国产综合91精品麻豆| 精品国精品国产| 91老司机福利 在线| 蜜桃视频在线一区| 日韩一区欧美一区| 久久综合久久综合久久| 在线观看亚洲一区| 成人激情小说网站| 免费高清在线视频一区·| 欧美激情一区二区在线| 91麻豆精品国产91久久久久久| 成人性生交大合| 麻豆成人av在线| 亚洲第四色夜色| 自拍偷拍亚洲激情| 欧美r级在线观看| 欧美天堂一区二区三区| 高潮精品一区videoshd| 日本va欧美va精品| 一区二区三区中文免费| 国产精品久久三区| 久久丝袜美腿综合| 日韩欧美国产综合在线一区二区三区| 99久久久精品| 国产成人在线电影| 极品少妇xxxx精品少妇偷拍| 亚洲国产成人av网| 亚洲精品视频在线看| 国产亚洲一区二区三区在线观看| 69av一区二区三区| 欧美性极品少妇| 色婷婷激情一区二区三区| 成人污视频在线观看| 国产成人av一区| 国产乱码精品一区二区三区五月婷| 青青草国产精品亚洲专区无| 亚洲丶国产丶欧美一区二区三区| 国产精品久久久久久久久晋中| 国产欧美日韩在线视频| 久久综合色一综合色88| 久久中文娱乐网| 精品福利一二区| 久久精品人人做人人综合| 欧美α欧美αv大片| 日韩美女视频在线| 精品日韩成人av| 久久嫩草精品久久久精品一| 精品国产乱码久久久久久图片| 欧美一级黄色大片| 欧美一级艳片视频免费观看| 欧美剧情片在线观看| 欧美一区二区私人影院日本| 欧美一区二区国产| 欧美sm极限捆绑bd| 国产三级精品三级| 自拍偷拍国产精品| 一区二区三区四区不卡在线| 性欧美大战久久久久久久久| 日韩精品电影在线| 黄色小说综合网站| 成人精品视频.| 在线一区二区三区四区| 欧美日韩三级一区| 精品久久一二三区| 亚洲欧美综合在线精品| 亚洲不卡av一区二区三区| 美女视频黄久久| 国产成人在线观看免费网站| 91视频在线观看免费| 欧美主播一区二区三区美女| 欧美日韩国产高清一区二区三区| 日韩欧美国产三级电影视频| 国产亚洲欧洲一区高清在线观看| 中文字幕一区二区三区色视频| 夜夜爽夜夜爽精品视频| 青青国产91久久久久久| 国产.精品.日韩.另类.中文.在线.播放| 成人福利电影精品一区二区在线观看| 色香色香欲天天天影视综合网| 9191成人精品久久| 国产精品久久久久影院老司| 亚洲成a人v欧美综合天堂| 麻豆精品在线观看| 99麻豆久久久国产精品免费优播| 欧美日韩精品一区二区三区蜜桃| 欧美sm极限捆绑bd| 一区二区三区成人| 国产精品综合二区| 欧美日韩午夜在线视频| 国产婷婷色一区二区三区四区| 亚洲一区二区视频| 岛国精品在线观看| 91精品在线免费观看| 国产精品不卡在线| 美国一区二区三区在线播放| 色婷婷av一区二区三区gif| 日韩无一区二区| 一区二区视频在线看| 国产麻豆一精品一av一免费| 欧美日韩精品电影| 亚洲三级小视频| 国产成人免费视频精品含羞草妖精| 欧美日精品一区视频| 国产欧美日本一区视频| 美国十次了思思久久精品导航| 日本精品裸体写真集在线观看| 中文字幕av一区二区三区高| 激情综合网激情| 91麻豆蜜桃一区二区三区| 久久精品视频一区二区| 香蕉成人啪国产精品视频综合网| 91在线码无精品| 欧美国产激情二区三区| 狠狠色丁香久久婷婷综合丁香| 欧美日韩精品福利| 亚洲一区二区精品3399| 91亚洲国产成人精品一区二区三 | 免费人成精品欧美精品| 91国模大尺度私拍在线视频| 亚洲欧美怡红院| av资源网一区| 一区二区中文字幕在线| 高清在线观看日韩| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 国产精品一二三| 精品入口麻豆88视频| 国产在线精品国自产拍免费| 日韩精品一区二区三区四区视频|