outline.c

来自「wxWidgets 是一个跨平台的 GUI 框架。它给开发人员提供了统一的接口」· C语言 代码 · 共 91 行

C
91
字号
/***************************************************************** * outline.c * * Copyright 1999, Clark Cooper * All rights reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the license contained in the * COPYING file that comes with the expat distribution. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. * * Read an XML document from standard input and print an element * outline on standard output. */#include <stdio.h>#include <expat.h>#define BUFFSIZE        8192char Buff[BUFFSIZE];int Depth;static voidstart(void *data, const char *el, const char **attr){  int i;  for (i = 0; i < Depth; i++)    printf("  ");  printf("%s", el);  for (i = 0; attr[i]; i += 2) {    printf(" %s='%s'", attr[i], attr[i + 1]);  }  printf("\n");  Depth++;}static voidend(void *data, const char *el){  Depth--;}intmain(int argc, char *argv[]){  XML_Parser p = XML_ParserCreate(NULL);  if (! p) {    fprintf(stderr, "Couldn't allocate memory for parser\n");    exit(-1);  }  XML_SetElementHandler(p, start, end);  for (;;) {    int done;    int len;    len = fread(Buff, 1, BUFFSIZE, stdin);    if (ferror(stdin)) {      fprintf(stderr, "Read error\n");      exit(-1);    }    done = feof(stdin);    if (XML_Parse(p, Buff, len, done) == XML_STATUS_ERROR) {      fprintf(stderr, "Parse error at line %d:\n%s\n",              XML_GetCurrentLineNumber(p),              XML_ErrorString(XML_GetErrorCode(p)));      exit(-1);    }    if (done)      break;  }  return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?