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

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

?? tfscan.c

?? 數(shù)據(jù)挖掘中的apriori算法,很好的代碼
?? C
字號(hào):
/*----------------------------------------------------------------------  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
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级在线看| 日韩美女一区二区三区四区| 日韩国产精品久久久久久亚洲| 久久九九久精品国产免费直播| 日本精品免费观看高清观看| 国产精品91一区二区| 亚洲国产精品一区二区www| 国产视频一区在线观看| 欧美日韩成人在线一区| 99国产精品久久久久久久久久久 | 成人在线视频首页| 日本中文字幕一区| 亚洲一区在线观看免费观看电影高清 | 亚洲一卡二卡三卡四卡五卡| 久久久www免费人成精品| 欧美精品视频www在线观看| 成人18视频日本| 狠狠色狠狠色综合日日91app| 亚洲444eee在线观看| 成人免费在线观看入口| 亚洲国产成人私人影院tom| 日韩一区二区电影网| 欧美视频在线一区| 色妞www精品视频| 成人黄色片在线观看| 狠狠狠色丁香婷婷综合激情| 免费三级欧美电影| 午夜精品福利在线| 亚洲欧美日韩精品久久久久| 欧美国产一区视频在线观看| 久久精品视频一区二区三区| 精品国产91乱码一区二区三区| 欧美男人的天堂一二区| 欧美性受xxxx黑人xyx性爽| 91免费看`日韩一区二区| 成人黄页在线观看| 播五月开心婷婷综合| 成人免费视频网站在线观看| 国产精品一区二区久激情瑜伽 | 色综合一区二区三区| aa级大片欧美| 91在线国内视频| 91免费观看国产| 色94色欧美sute亚洲线路二| 日本道色综合久久| 欧美性做爰猛烈叫床潮| 欧美亚洲国产bt| 欧美综合久久久| 欧美日产在线观看| 欧美狂野另类xxxxoooo| 91精品久久久久久久久99蜜臂| 6080国产精品一区二区| 日韩欧美国产wwwww| 久久中文字幕电影| 欧美激情一区不卡| 亚洲狼人国产精品| 亚洲成人动漫在线观看| 蜜桃视频一区二区三区| 精品一区二区国语对白| 高清国产一区二区| 色先锋资源久久综合| 欧美精品乱人伦久久久久久| 欧美电影免费观看高清完整版在| 国产亚洲精品资源在线26u| 中文字幕国产一区| 亚洲精选视频免费看| 天天影视网天天综合色在线播放 | 五月天网站亚洲| 久久成人免费网站| 不卡一区在线观看| 欧美日韩不卡在线| 久久婷婷国产综合精品青草| 国产精品情趣视频| 亚洲一级二级在线| 久久99久久99小草精品免视看| 丁香激情综合国产| 欧美性一二三区| 久久九九久久九九| 亚洲高清免费观看| 国产成人在线视频网站| 欧美三级韩国三级日本一级| 久久亚洲精品小早川怜子| 1024成人网| 免费在线观看一区二区三区| 波多野结衣中文字幕一区| 91精品免费在线观看| 国产精品国产三级国产专播品爱网| 亚洲国产精品一区二区久久| 国产剧情一区在线| 欧美日韩美少妇| 国产人成一区二区三区影院| 亚洲超碰精品一区二区| 成人激情免费网站| 日韩精品在线一区二区| 亚洲免费高清视频在线| 国产在线国偷精品免费看| 欧美日韩一区在线观看| 国产精品免费av| 免费看日韩精品| 色播五月激情综合网| 国产人成亚洲第一网站在线播放| 午夜一区二区三区视频| 成人午夜短视频| 精品国产一区二区三区不卡 | 国产精品一卡二| 欧美天堂一区二区三区| 国产精品久久久久久久久免费丝袜 | 美女脱光内衣内裤视频久久网站| 99国产精品国产精品久久| 精品国产凹凸成av人网站| 亚洲v精品v日韩v欧美v专区| 97se亚洲国产综合在线| 欧美激情在线看| 国产一区 二区 三区一级| 日韩欧美色综合网站| 婷婷久久综合九色国产成人| 日本韩国欧美一区| 亚洲欧美一区二区三区极速播放 | 国内精品久久久久影院色 | 日韩欧美视频在线| 午夜精品福利在线| 欧美色爱综合网| 亚洲影视在线播放| 欧美中文字幕不卡| 一区二区三区欧美| 日本高清不卡在线观看| 日韩毛片高清在线播放| 99久久婷婷国产综合精品 | 国产女人aaa级久久久级| 麻豆成人免费电影| 91精品国产日韩91久久久久久| 亚洲女人****多毛耸耸8| a4yy欧美一区二区三区| 亚洲欧洲www| 91蜜桃婷婷狠狠久久综合9色| 国产欧美中文在线| 成人免费黄色大片| 国产精品初高中害羞小美女文| 国产福利视频一区二区三区| 国产区在线观看成人精品| 国产成人综合亚洲91猫咪| 中文字幕第一区| av福利精品导航| 亚洲精品视频观看| 欧美人伦禁忌dvd放荡欲情| 日本美女视频一区二区| 欧美mv和日韩mv的网站| 国产乱色国产精品免费视频| 2020国产精品自拍| 国产91清纯白嫩初高中在线观看| 国产精品网站一区| 色综合天天综合在线视频| 亚洲激情在线播放| 5月丁香婷婷综合| 韩国午夜理伦三级不卡影院| 欧美激情综合五月色丁香小说| 北条麻妃国产九九精品视频| 亚洲视频 欧洲视频| 欧美日韩一二三区| 麻豆精品在线看| 国产精品视频你懂的| 欧美色区777第一页| 理论电影国产精品| 国产精品嫩草影院com| 在线视频国内自拍亚洲视频| 日本亚洲三级在线| 久久美女高清视频| 在线亚洲人成电影网站色www| 婷婷国产在线综合| 国产视频一区在线观看| 在线观看视频91| 加勒比av一区二区| 亚洲欧美日韩电影| 91精品婷婷国产综合久久竹菊| 国产一区二区调教| 樱花草国产18久久久久| 日韩午夜在线观看视频| jlzzjlzz亚洲女人18| 午夜影视日本亚洲欧洲精品| 久久这里只有精品视频网| 色婷婷亚洲婷婷| 久久99精品国产91久久来源| 《视频一区视频二区| 欧美一级高清片| 91亚洲国产成人精品一区二三| 欧美aaa在线| 亚洲欧美欧美一区二区三区| 精品久久久网站| 91久久精品网| 福利一区福利二区| 免费看欧美女人艹b| 亚洲欧美另类小说| 精品99999| 欧美日韩激情一区| hitomi一区二区三区精品| 免费一级片91| 一区二区免费在线| 一色桃子久久精品亚洲| 久久久综合九色合综国产精品| 欧美日韩一级黄|