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

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

?? input.c

?? C標準庫源代碼,能提高對C的理解,不錯的哦
?? C
?? 第 1 頁 / 共 5 頁
字號:
/***
*input.c - C formatted input, used by scanf, etc.
*
*       Copyright (c) 1987-1997, Microsoft Corporation. All rights reserved.
*
*Purpose:
*       defines _input() to do formatted input; called from scanf(),
*       etc. functions.  This module defines _cscanf() instead when
*       CPRFLAG is defined.  The file cscanf.c defines that symbol
*       and then includes this file in order to implement _cscanf().
*
*******************************************************************************/

#ifdef _WIN32


#define ALLOW_RANGE /* allow "%[a-z]"-style scansets */


/* temporary work-around for compiler without 64-bit support */

#ifndef _INTEGRAL_MAX_BITS
#define _INTEGRAL_MAX_BITS  64
#endif  /* _INTEGRAL_MAX_BITS */


#include <cruntime.h>
#include <stdio.h>
#include <ctype.h>
#include <cvt.h>
#include <conio.h>
#include <stdarg.h>
#include <string.h>
#include <internal.h>
#include <fltintrn.h>
#include <mtdll.h>
#include <stdlib.h>
#include <nlsint.h>
#include <dbgint.h>

#ifdef _MBCS
#undef _MBCS
#endif  /* _MBCS */
#include <tchar.h>

#define HEXTODEC(chr)   _hextodec(chr)
#define LEFT_BRACKET    ('[' | ('a' - 'A')) /* 'lowercase' version */

#ifdef _UNICODE
static wchar_t __cdecl _hextodec(wchar_t);
#else  /* _UNICODE */
static int __cdecl _hextodec(int);
#endif  /* _UNICODE */

/*
 * Note: CPRFLAG and _UNICODE cases are currently mutually exclusive.
 */

#ifdef CPRFLAG

#define INC()           (++charcount, _inc())
#define UN_INC(chr)     (--charcount, _ungetch_lk(chr))
#define EAT_WHITE()     _whiteout(&charcount)

static int __cdecl _inc(void);
static int __cdecl _whiteout(int *);

#else  /* CPRFLAG */

#define INC()           (++charcount, _inc(stream))
#define UN_INC(chr)     (--charcount, _un_inc(chr, stream))
#define EAT_WHITE()     _whiteout(&charcount, stream)

#ifndef _UNICODE
static int __cdecl _inc(FILE *);
static void __cdecl _un_inc(int, FILE *);
static int __cdecl _whiteout(int *, FILE *);
#else  /* _UNICODE */
static wchar_t __cdecl _inc(FILE *);
static void __cdecl _un_inc(wchar_t, FILE *);
static wchar_t __cdecl _whiteout(int *, FILE *);
#endif  /* _UNICODE */

#endif  /* CPRFLAG */


#ifndef _UNICODE
#define _ISDIGIT(chr)   isdigit(chr)
#define _ISXDIGIT(chr)  isxdigit(chr)
#else  /* _UNICODE */
#define _ISDIGIT(chr)   ( !(chr & 0xff00) && isdigit( chr & 0x00ff ) )
#define _ISXDIGIT(chr)  ( !(chr & 0xff00) && isxdigit( chr & 0x00ff ) )
#endif  /* _UNICODE */


#ifdef _UNICODE
int __cdecl _winput(FILE *, const wchar_t *, va_list);
#endif  /* _UNICODE */

#ifdef CPRFLAG
static int __cdecl input(const unsigned char *, va_list);


/***
*int _cscanf(format, arglist) - read formatted input direct from console
*
*Purpose:
*   Reads formatted data like scanf, but uses console I/O functions.
*
*Entry:
*   char *format - format string to determine data formats
*   arglist - list of POINTERS to where to put data
*
*Exit:
*   returns number of successfully matched data items (from input)
*
*Exceptions:
*
*******************************************************************************/


int __cdecl _cscanf (
    const char *format,
    ...
    )
{
    va_list arglist;

    va_start(arglist, format);

    _ASSERTE(format != NULL);

    return input(format,arglist);   /* get the input */
}

#endif  /* CPRFLAG */


#define ASCII       32           /* # of bytes needed to hold 256 bits */

#define SCAN_SHORT     0         /* also for FLOAT */
#define SCAN_LONG      1         /* also for DOUBLE */
#define SCAN_L_DOUBLE  2         /* only for LONG DOUBLE */

#define SCAN_NEAR    0
#define SCAN_FAR     1


static _TCHAR sbrackset[] = _T(" \t-\r]"); /* use range-style list */


static _TCHAR cbrackset[] = _T("]");



/***
*int _input(stream, format, arglist), static int input(format, arglist)
*
*Purpose:
*   get input items (data items or literal matches) from the input stream
*   and assign them if appropriate to the items thru the arglist. this
*   function is intended for internal library use only, not for the user
*
*   The _input entry point is for the normal scanf() functions
*   The input entry point is used when compiling for _cscanf() [CPRFLAF
*   defined] and is a static function called only by _cscanf() -- reads from
*   console.
*
*Entry:
*   FILE *stream - file to read from
*   char *format - format string to determine the data to read
*   arglist - list of pointer to data items
*
*Exit:
*   returns number of items assigned and fills in data items
*   returns EOF if error or EOF found on stream before 1st data item matched
*
*Exceptions:
*
*******************************************************************************/

#ifdef CPRFLAG

static int __cdecl input (
    const unsigned char *format,
    va_list arglist
    )
#elif defined (_UNICODE)

int __cdecl _winput (
    FILE *stream,
    const wchar_t *format,
    va_list arglist
    )
#else  /* defined (_UNICODE) */

int __cdecl _input (
    FILE *stream,
    const unsigned char *format,
    va_list arglist
    )
#endif  /* defined (_UNICODE) */

{
#ifndef _UNICODE
    char table[ASCII];                  /* which chars allowed for %[], %s   */
    char floatstring[CVTBUFSIZE + 1];   /* ASCII buffer for floats           */
#else  /* _UNICODE */
    char table[256*ASCII];
    wchar_t floatstring[CVTBUFSIZE + 1];
#endif  /* _UNICODE */

    unsigned long number;               /* temp hold-value                   */
#if _INTEGRAL_MAX_BITS >= 64   
    unsigned __int64 num64;             /* temp for 64-bit integers          */
#endif  /* _INTEGRAL_MAX_BITS >= 64    */
    void *pointer;                      /* points to user data receptacle    */
    void *start;                        /* indicate non-empty string         */


#ifdef _UNICODE
    wchar_t *scanptr;           /* for building "table" data         */
REG2 wchar_t ch;
#else  /* _UNICODE */
    wchar_t wctemp;
    unsigned char *scanptr;             /* for building "table" data         */
REG2 int ch;
#endif  /* _UNICODE */
    int charcount;                      /* total number of chars read        */
REG1 int comchr;                        /* holds designator type             */
    int count;                          /* return value.  # of assignments   */

    int started;                        /* indicate good number              */
    int width;                          /* width of field                    */
    int widthset;                       /* user has specified width          */

/* Neither coerceshort nor farone are need for the 386 */


    char done_flag;                     /* general purpose loop monitor      */
    char longone;                       /* 0 = SHORT, 1 = LONG, 2 = L_DOUBLE */
#if _INTEGRAL_MAX_BITS >= 64   
    int integer64;                      /* 1 for 64-bit integer, 0 otherwise */
#endif  /* _INTEGRAL_MAX_BITS >= 64    */
    signed char widechar;               /* -1 = char, 0 = ????, 1 = wchar_t  */
    char reject;                        /* %[^ABC] instead of %[ABC]         */
    char negative;                      /* flag for '-' detected             */
    char suppress;                      /* don't assign anything             */
    char match;                         /* flag: !0 if any fields matched    */
    va_list arglistsave;                /* save arglist value                */

    char fl_wchar_arg;                  /* flags wide char/string argument   */
#ifdef _UNICODE
    wchar_t rngch;              /* used while scanning range         */
    wchar_t last;               /* also for %[a-z]                   */
    wchar_t prevchar;           /* for %[a-z]                        */
    wchar_t wdecimal;                   /* wide version of decimal point     */
    wchar_t *wptr;                      /* pointer traverses wide floatstring*/
#else  /* _UNICODE */
    unsigned char rngch;                /* used while scanning range         */
    unsigned char last;                 /* also for %[a-z]                   */
    unsigned char prevchar;             /* for %[a-z]                        */
#endif  /* _UNICODE */

    _ASSERTE(format != NULL);

#ifndef CPRFLAG
    _ASSERTE(stream != NULL);
#endif  /* CPRFLAG */

    /*
    count = # fields assigned
    charcount = # chars read
    match = flag indicating if any fields were matched

    [Note that we need both count and match.  For example, a field
    may match a format but have assignments suppressed.  In this case,
    match will get set, but 'count' will still equal 0.  We need to
    distinguish 'match vs no-match' when terminating due to EOF.]
    */

    count = charcount = match = 0;

    while (*format) {

        if (_istspace((_TUCHAR)*format)) {

            UN_INC(EAT_WHITE()); /* put first non-space char back */

            while ((_istspace)(*++format)); /* NULL */
            /* careful: isspace macro may evaluate argument more than once! */

        }

        if (_T('%') == *format) {

            number = 0;
            prevchar = 0;
            width = widthset = started = 0;
            fl_wchar_arg = done_flag = suppress = negative = reject = 0;
            widechar = 0;

            longone = 1;

            integer64 = 0;

            while (!done_flag) {

                comchr = *++format;
                if (_ISDIGIT((_TUCHAR)comchr)) {
                    ++widthset;
                    width = MUL10(width) + (comchr - _T('0'));
                } else
                    switch (comchr) {
                        case _T('F') :
                        case _T('N') :   /* no way to push NEAR in large model */
                            break;  /* NEAR is default in small model */
                        case _T('h') :
                            /* set longone to 0 */
                            --longone;
                            --widechar;         /* set widechar = -1 */
                            break;

#if _INTEGRAL_MAX_BITS >= 64   
                        case _T('I'):
                            if ( (*(format + 1) == _T('6')) &&
                                 (*(format + 2) == _T('4')) )
                            {
                                format += 2;
                                ++integer64;
                                num64 = 0;
                                break;
                            }
                            goto DEFAULT_LABEL;
#endif  /* _INTEGRAL_MAX_BITS >= 64    */

                        case _T('L') :
                        /*  ++longone;  */
                            ++longone;
                            break;

                        case _T('l') :
                            ++longone;
                                    /* NOBREAK */
                        case _T('w') :
                            ++widechar;         /* set widechar = 1 */
                            break;

                        case _T('*') :
                            ++suppress;
                            break;

                        default:
DEFAULT_LABEL:
                            ++done_flag;
                            break;
                    }
            }

            if (!suppress) {
                arglistsave = arglist;
                pointer = va_arg(arglist,void *);
            }

            done_flag = 0;

            if (!widechar) {    /* use case if not explicitly specified */
                if ((*format == _T('S')) || (*format == _T('C')))
#ifdef _UNICODE
                    --widechar;
                else
                    ++widechar;
#else  /* _UNICODE */
                    ++widechar;
                else
                    --widechar;
#endif  /* _UNICODE */
            }

            /* switch to lowercase to allow %E,%G, and to
               keep the switch table small */

            comchr = *format | (_T('a') - _T('A'));

            if (_T('n') != comchr)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线观看日韩电影| 色综合色狠狠综合色| 日韩毛片视频在线看| www久久精品| 日韩欧美的一区二区| 日韩一区二区精品在线观看| 欧美日韩久久久一区| 欧美日韩精品一区二区在线播放| 色久优优欧美色久优优| 在线日韩av片| 欧美情侣在线播放| 在线不卡a资源高清| 91精品国产综合久久国产大片 | 色综合久久中文字幕| 99久久综合99久久综合网站| 成人小视频在线| av动漫一区二区| 欧美体内she精高潮| 欧美一区三区四区| 国产亚洲精品资源在线26u| 国产情人综合久久777777| 亚洲欧洲精品成人久久奇米网| 中文字幕一区二区在线播放 | 日本成人在线一区| 国产老女人精品毛片久久| 成人久久久精品乱码一区二区三区 | 免费在线观看成人| 国产最新精品免费| 成人av电影免费观看| 欧美日韩不卡一区二区| 国产亚洲精品aa| 亚洲黄色免费电影| 麻豆91精品91久久久的内涵| 国产成人精品亚洲午夜麻豆| 色8久久精品久久久久久蜜| 5月丁香婷婷综合| 国产婷婷一区二区| 亚洲综合在线观看视频| 久草这里只有精品视频| 91激情在线视频| 久久久国产综合精品女国产盗摄| 亚洲主播在线观看| 国产夫妻精品视频| 337p亚洲精品色噜噜| 亚洲欧洲性图库| 精品亚洲porn| 在线不卡中文字幕| 亚洲码国产岛国毛片在线| 精品亚洲国内自在自线福利| 欧美日韩一区久久| 国产精品每日更新| 国产最新精品精品你懂的| 91国产丝袜在线播放| 中文字幕av不卡| 国产一本一道久久香蕉| 欧美日韩国产首页| 亚洲人成精品久久久久久| 国产精品影音先锋| 欧美一级视频精品观看| 亚洲午夜精品在线| 日本精品免费观看高清观看| 国产精品无圣光一区二区| 蜜桃一区二区三区在线观看| 欧美日韩国产免费一区二区 | 粉嫩13p一区二区三区| 日韩免费成人网| 免费观看91视频大全| 69成人精品免费视频| 天堂一区二区在线免费观看| 色噜噜狠狠成人网p站| 亚洲特级片在线| 91网页版在线| 亚洲精品水蜜桃| 91丨九色porny丨蝌蚪| 中文字幕av不卡| 99视频在线精品| 1000精品久久久久久久久| 成人一区在线观看| 国产精品久久国产精麻豆99网站| 国产大陆亚洲精品国产| 国产嫩草影院久久久久| 东方aⅴ免费观看久久av| 国产日韩成人精品| 成人av手机在线观看| 亚洲色图都市小说| 91免费视频网| 亚洲图片一区二区| 91精品中文字幕一区二区三区| 日韩福利视频导航| www激情久久| 99久久精品国产一区二区三区| 国产日韩欧美精品电影三级在线| 成人一区在线看| 亚洲国产美女搞黄色| 日韩欧美视频一区| 国产高清精品久久久久| 亚洲特黄一级片| 91精品在线一区二区| 国产一区二区在线视频| 欧美激情在线看| 欧美性大战久久久| 精品一区二区三区久久久| 日本一区二区三区免费乱视频| aaa国产一区| 日韩电影网1区2区| 国产清纯美女被跳蛋高潮一区二区久久w| 成人国产精品免费| 首页欧美精品中文字幕| 国产三级精品视频| 欧洲精品中文字幕| 国产精品一区二区三区四区| 亚洲免费观看高清| 精品国产精品一区二区夜夜嗨| 春色校园综合激情亚洲| 婷婷六月综合亚洲| 国产精品乱码一区二三区小蝌蚪| 欧美日韩第一区日日骚| 风间由美一区二区av101| 亚洲成av人**亚洲成av**| 久久久久久99久久久精品网站| 91成人免费电影| 国产精品小仙女| 日韩高清不卡一区| 亚洲乱码国产乱码精品精可以看 | 国产成人免费网站| 天天色天天操综合| 日韩一区在线播放| 日韩精品中午字幕| 91国内精品野花午夜精品| 国产suv精品一区二区三区| 日本不卡视频一二三区| 亚洲欧美日韩一区| 国产精品无人区| 2023国产精品自拍| 日韩亚洲欧美成人一区| 欧美性猛交一区二区三区精品| 国产999精品久久久久久| 免费观看成人av| 日韩国产一区二| 亚洲成人免费看| 亚洲午夜在线电影| 一区二区三区产品免费精品久久75| 国产亚洲精久久久久久| 欧美精品一区二区三区在线播放| 67194成人在线观看| 欧美在线一区二区三区| 色偷偷88欧美精品久久久| 99天天综合性| 色综合久久久久久久| 91首页免费视频| 一本久久a久久精品亚洲| 粗大黑人巨茎大战欧美成人| 成人一区二区三区| 国产 日韩 欧美大片| 夫妻av一区二区| av不卡免费电影| 色一情一乱一乱一91av| 色网综合在线观看| 在线视频亚洲一区| 日本高清不卡aⅴ免费网站| 在线日韩一区二区| 欧美一级艳片视频免费观看| 欧美一区二区三区免费在线看| 日韩一区二区免费在线电影| 精品久久人人做人人爰| 久久人人爽人人爽| 日本一区免费视频| 亚洲美女视频一区| 亚洲一区二区3| 美女在线视频一区| 丁香亚洲综合激情啪啪综合| www.一区二区| 欧美专区日韩专区| 欧美一区二区三级| 国产人久久人人人人爽| 亚洲欧美国产高清| 日韩国产欧美三级| 成人性视频免费网站| 在线精品视频一区二区三四| 91精品久久久久久蜜臀| 欧美精品一区二区三区很污很色的 | 亚洲 欧美综合在线网络| 欧美aaa在线| 99精品视频一区二区三区| 精品视频免费看| 337p粉嫩大胆色噜噜噜噜亚洲 | 日韩一级二级三级精品视频| 久久久久国产精品人| 亚洲成在线观看| 国产成人小视频| 欧美午夜宅男影院| 国产人成一区二区三区影院| 亚洲国产aⅴ天堂久久| 国产一区二区三区在线观看免费 | 国产精品主播直播| 色av成人天堂桃色av| 久久综合色婷婷| 亚洲成人先锋电影| 91在线观看免费视频| 日韩欧美的一区二区|