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

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

?? getcmt.c

?? 匯編源代碼大全
?? C
字號:
/* getcmt.c - get comments from a C or C++ source file    */
/*
                               Byte_Magic Software
                             9850 Meadowglen Ln. #35
                               Houston, Tx.  77042
                                 (713) 975-9033

Author:     Greg Messer
Program:    getcmt.c
Purpose:    Isolate comments from a C or C++ source file. Filter.
Syntax:     getcmt [/L?] [filename]
            (may use redirection for file and/or device I/O)
Release:    Released to the Public Domain by Byte_Magic Software.
Date:       07-11-88 GM...
                First release.
Revised:    01-13-90 GM...
                Streamlined logic.
            01-15-90 Bob Stout (RBS)...
                Fixed unsigned char error as return from getc().
            01-22-90 GM...
                Fixed bug handling "xx/" (xx = **) at end of comment.
                Added C++ comment extraction.
                Added return of count to OS (ERRORLEVEL in MS-DOS).
            01-24-90 RBS
                Added filename spec option
                Added /? switch
System:     Compiled with Zortech C V2.06 under MS-DOS 3.20
            for IBM PCs and compatibles.
Rules:      ANSI C comments begin with /x and end with x/. (x = *).
            Comments do not nest and do not appear in string or character
            constants.
            C++ comments begin with double slashes and end at EOL.
            A Microsoft extension to C allows C++ style comments to serve as
            single-line comments in C source.
Comments:   Useful for creating documentation and improving commenting style.
            Input may be from a specified filename or stdin.
            Output is to stdout, so use DOS redirection for output.
            Messages go to stderr so they are not redirectable from the screen.
            Returns ERRORLEVEL = number of comments in source file(s).
Examples:
            Example... Output to screen:
            getcmt < cfile.c
               (displays comments from cfile.c on screen)
            type cfile.c | getcmt
               (same as above but slightly slower)
            getcmt < cfile.c | more
               (same as above, but pauses after each full screen)
            getcmt cfile.c /l | more
               (same as above, but display line numbers)

            Example... Output to printer:
            getcmt < cfile.c > prn
               (same as above but prints output on printer)
            type cfile.c | getcmt > prn
               (same as above but slightly slower)

            Example... Output to file:
            getcmt < cfile.c > cfile.cmt
               (writes cfile.c comments to cfile.cmt, overwriting existing file)
            getcmt < cfile.c >> cfile.doc
               (writes cfile.c comments to end of cfile.doc (appends))
                       
            getcmt /?
               (displays help screen, returns ERRORLEVEL = 0)
            getcmt /x
               (invalid option - displays help screen, returns ERRORLEVEL = -1)

            For complete instructions on using redirection symbols, consult
            the PC-DOS or MS-DOS manual or a general DOS reference book.
*/

#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>

#define LOOKS_GREAT 1
#define LESS_FILLING 0

int extract_c_cmts(void);
void inside_c_cmt(int);

FILE *infile = stdin;                   /* read input from here             */
int  show_nos = 0;                      /* 0 = don't display line numbers   */
int  line_no = 1;                       /* line_no = line number            */

/*  *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   */

main(int argc, char *argv[])                            /* main logic:      */
{
    register int i;
    const char *hype =
        "\nGETCMT v1.1 - GET CoMmenTs\nby Byte_Magic Software\n";
    const char *help =
        "\nUsage: GETCMT [/l?] [filename | <sourcefile.ext] "
        "[>destination file or device]\n"
        "Options:  l - Print line numbers\n"
        "          ? - Help\n"
        "\nFilename optional - Reads source code from stdin "
        "(Ctrl-C to quit before EOF)\n";
    const char *oops =
        "\a*** GETCMT - Can't open input file ";
                                            /* display messages to operator */
#if LOOKS_GREAT
    fputs(hype, stderr);
#elif LESS_FILLING
    i = 0;
    while(hype[i] != '\0')
        putc(hype[i++], stderr);
#endif

    if (1 < argc)
    {
        for (i = 1; i < argc; ++i)
        {
            if ('/' == *argv[i])
            {
                if ('l' == tolower(argv[i][1]))
                    show_nos = 1;
                else
                {
                    int ercode;

                    ercode = ('?' == argv[i][1]) ? 0 : -1;
#if LOOKS_GREAT
                    fputs(help, stderr);
#elif LESS_FILLING
                    i = 0;
                    while(help[i] != '\0')
                        putc(help[i++], stderr);
#endif
                    if (ercode)             /* output BEL if invalid seitch */
                        putc('\a', stderr);
                    return(ercode);
                }
            }
            else
            {
                infile = fopen(argv[i], "r");
                if (!infile)
                {
#if LOOKS_GREAT
                    fputs(oops, stderr);
                    fputs(argv[i], stderr);
#elif LESS_FILLING
                    char *p = argv[i];

                    i = 0;
                    while (oops[i])
                        putc(oops[i], stderr);
                    i = 0;
                    while (*p)
                        putc(*p++, stderr);
#endif
                }
            }
        }
    }

    i = extract_c_cmts();                   /* extract comments in infile   */
    putc('\n', stdout);

    return(i);                              /* return number of comments to */
                                            /* OS (ERRORLEVEL in DOS)       */
}

/*  *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   */

int extract_c_cmts()                        /* comment extraction logic:    */
{
    register int chi, cht;              /* chi = char in, cht = char test   */
    int count;                          /* count = comment count            */

    count = 0;
    chi = getc(infile);
    while(chi != EOF)                       /* as long as there is input... */
    {
        if(chi == '/')                      /* process comments             */
        {
            cht = getc(infile);
            if(cht == EOF)
                return(count);
            if(cht == '*' || cht == '/')    /* if start of a comment...     */
            {
                count++;                    /* count it and                 */
                inside_c_cmt(cht);          /* output all of the comment    */
            }
            else
                ungetc(cht, infile);
        }
        if ('\n' == chi)
            line_no += 1;
        chi = getc(infile);                  /* continue scanning input     */
    }
    return(count);
}

/*  *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   */

char *lntoaz(void)                      /* line number to zero-padded ASCII */
{
    int i, num = line_no;
    static char numbuf[] = "0000: ";

    if (9999 < num)
        strncpy(numbuf, "0000", 4);
    else for (i = 3; i >= 0; --i)
    {
        numbuf[i] = (char)('0' + num % 10);
        num /= 10;
    }
    return numbuf;
}

/*  *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   */

void inside_c_cmt(int ch)                   /* comment output logic:        */
{                                           /* input ch = either '*' for C  */
                                            /* or '/' for C++               */

    register int chi, cht;              /* chi = char in, cht = char test   */
#if LESS_FILLING
    char *p;
#endif

    if(ch == '/')                           /* make ch = '\n' if C++        */
        ch = '\n';                          /* note: ch is already 1st char */
                                            /* of end comment if this is C  */
    putc('\n', stdout);
    if (show_nos)
    {
#if LOOKS_GREAT
    fputs(lntoaz(), stdout);
#elif LESS_FILLING
    p = lntoaz();
        while (*p)
        putc(*p++, stdout);
#endif
    }
    chi = getc(infile);
    while(chi != EOF)                       /* as long as there is input... */
    {                                       /* process comments             */
        if(chi == ch)
        {
            if(ch == '\n')                  /* if C++ comment is ended...   */
                return;                     /* stop outputting              */
            cht = getc(infile);
            if(cht == '/')                  /* if C comment is ended...     */
                return;                     /* stop outputting              */
            else
            {
                ungetc(cht, infile);
                putc(chi, stdout);
            }
        }
        else
            putc(chi, stdout);              /* else comment text, output it */
        if ('\n' == chi)
            line_no += 1;
                                            
        chi = getc(infile);                  /* continue scanning input     */
    }
    return;
}

/*  *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   *   */
/* end of getcmt.c  */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97aⅴ精品视频一二三区| 狠狠色狠狠色综合日日91app| 日韩三级在线观看| 99免费精品视频| 蜜臀av一级做a爰片久久| 亚洲色欲色欲www| 日韩精品最新网址| 一本色道**综合亚洲精品蜜桃冫| 黄页网站大全一区二区| 亚洲gay无套男同| 中文字幕字幕中文在线中不卡视频| 91精品国产综合久久福利软件| av网站一区二区三区| 精品无码三级在线观看视频| 亚洲主播在线观看| 亚洲色图在线看| 国产日韩av一区| 久久免费的精品国产v∧| 欧美精品丝袜中出| 欧美亚洲国产怡红院影院| 成人午夜在线播放| 国产精品一区在线| 精品一区二区在线播放| 丝瓜av网站精品一区二区| 日韩毛片一二三区| 国产精品麻豆一区二区| 久久麻豆一区二区| 精品欧美黑人一区二区三区| 欧美人与z0zoxxxx视频| 欧美性大战久久久久久久蜜臀| 99视频超级精品| 成人sese在线| 成人午夜私人影院| 成人亚洲一区二区一| 福利一区二区在线| 丁香六月综合激情| 大桥未久av一区二区三区中文| 国产一区二区三区四区五区美女| 久久99国内精品| 久久99精品一区二区三区三区| 蜜臀va亚洲va欧美va天堂| 蜜乳av一区二区| 久久狠狠亚洲综合| 国内精品第一页| 国产麻豆视频一区| 成人综合婷婷国产精品久久蜜臀| 国产99久久久久| 成人动漫一区二区| 日本久久一区二区| 欧美日韩国产123区| 67194成人在线观看| 欧美一区二区视频在线观看 | 国产精品1024久久| 国产69精品一区二区亚洲孕妇| 国产成人久久精品77777最新版本| 国产成人精品免费| 97成人超碰视| 欧美日韩精品是欧美日韩精品| 91精品综合久久久久久| 日韩美女在线视频| 国产精品视频线看| 亚洲综合区在线| 免费在线观看日韩欧美| 国产高清不卡一区二区| av爱爱亚洲一区| 欧美日韩激情在线| 精品粉嫩超白一线天av| 国产精品日日摸夜夜摸av| 亚洲欧美另类久久久精品 | 国产精品乡下勾搭老头1| 国产传媒久久文化传媒| 色综合天天做天天爱| 欧美福利电影网| 国产亚洲精久久久久久| 亚洲欧美日韩国产另类专区| 性久久久久久久久| 国产成人av一区二区| 欧美性色欧美a在线播放| 精品日韩成人av| 亚洲免费观看视频| 国内外成人在线视频| 91网站黄www| 欧美一区二区三区免费| 最新日韩av在线| 美女在线视频一区| 91亚洲精品久久久蜜桃| 日韩一区二区三区观看| 中文字幕一区二区视频| 久久99久久精品欧美| 色综合久久中文综合久久97 | 久久久精品黄色| 亚洲一区二区四区蜜桃| 国产精品一区专区| 91精品国产欧美一区二区| 国产精品久久久久久久久久免费看 | 欧亚洲嫩模精品一区三区| 日韩美女视频在线| 亚洲高清免费观看| 成人高清在线视频| 日韩精品一区二区三区四区| 亚洲欧美激情小说另类| 国产乱子伦视频一区二区三区| 欧美色窝79yyyycom| 亚洲国产高清aⅴ视频| 蜜桃精品视频在线| 欧美日韩一区二区在线观看视频| 国产欧美日韩在线| 美女诱惑一区二区| 欧美福利电影网| 一区二区三区免费网站| 成人毛片视频在线观看| 精品国产乱码久久久久久图片| 亚洲一卡二卡三卡四卡| 91在线观看地址| 中文一区一区三区高中清不卡| 奇米色一区二区三区四区| 欧美性猛交xxxx乱大交退制版| 中文字幕一区免费在线观看| 国产精品99久久久久久久女警| 欧美一级xxx| 日韩高清不卡一区二区| 欧日韩精品视频| 亚洲自拍偷拍九九九| 91麻豆国产福利精品| 国产精品精品国产色婷婷| 国产福利视频一区二区三区| 精品国内片67194| 麻豆成人久久精品二区三区小说| 欧美日本在线一区| 亚洲一二三专区| 在线精品视频免费播放| 一区二区三区在线视频观看58| 99久久精品免费| 亚洲免费在线电影| 欧美在线免费视屏| 亚洲成a人在线观看| 欧美天天综合网| 午夜视频一区二区| 欧美美女直播网站| 亚洲国产人成综合网站| 欧美性xxxxxx少妇| 亚洲成人一区在线| 欧美精品自拍偷拍动漫精品| 亚洲成av人片一区二区| 欧美日韩免费不卡视频一区二区三区| 亚洲一二三四区不卡| 欧美精品丝袜中出| 激情综合色综合久久| 国产人久久人人人人爽| 成人av午夜电影| 一区二区三区不卡视频在线观看 | 91精品欧美久久久久久动漫| 青青草成人在线观看| 日韩三级高清在线| 国产乱淫av一区二区三区| 中文字幕+乱码+中文字幕一区| 99精品视频一区二区| 亚洲妇女屁股眼交7| 4438x亚洲最大成人网| 国产一区二区精品久久99| 亚洲国产精品成人综合| 91网站视频在线观看| 日韩黄色在线观看| 欧美精品一区二区三区在线播放| 国产99久久久久久免费看农村| 亚洲日本一区二区| 欧美丰满嫩嫩电影| 国产乱人伦精品一区二区在线观看| 中文字幕乱码亚洲精品一区| 色婷婷精品大视频在线蜜桃视频| 五月天激情综合| 国产亚洲午夜高清国产拍精品| 色av成人天堂桃色av| 青青草国产成人av片免费| 国产精品嫩草影院com| 欧美三级韩国三级日本三斤| 极品少妇一区二区三区精品视频| 亚洲国产经典视频| 91精品欧美综合在线观看最新| 成人做爰69片免费看网站| 天堂久久久久va久久久久| 久久久亚洲精品一区二区三区 | 欧美性猛交xxxxxxxx| 久久成人精品无人区| 成人欧美一区二区三区白人| 欧美专区亚洲专区| 国产精品主播直播| 亚洲国产一区二区三区青草影视| 精品国产乱码久久久久久夜甘婷婷| 色综合一个色综合亚洲| 国内欧美视频一区二区| 亚洲国产日韩a在线播放性色| 久久精品视频在线看| 欧美顶级少妇做爰| 91麻豆swag| 国产精品88av| 日本不卡免费在线视频| 洋洋av久久久久久久一区| 久久久久久久免费视频了| 欧美日韩高清不卡|