书上的练习题,把ini文件模式转换成XML格式

#include <stdio.h>
#include <string.h>
#include <stdbool.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
        bool flag = false;
        char tmp[80];
        char st[80];
        char name[80], val[80];
        FILE *fp, *ofp;
        char *p;
        if (argc != 3) {
        	printf("参数不正确\n");
        	_exit(0);
        }
        if ((fp = fopen(argv[1], "r")) == NULL || (ofp = fopen(argv[2], "w")) == NULL) {
                perror("打开文件出错");
                _exit(0);
        }
        while (fgets(tmp, 80, fp) != NULL) {
                char c = 0;
                sscanf(tmp, " %c", &c);
                switch(c) {
                        case ';':
                                p = strchr(tmp, '\n');
                                if (p != NULL)
                                        *p = '\0';
                                printf("<!-- %s -->\n", tmp+1);
                                fprintf(ofp, "<!-- %s -->\n", tmp+1);
                                break;
                        case '[':
                                p = strchr(tmp, ']');
                                if (p == NULL)
                                        printf("error\n");
                                else {
                                        *p = '\0';
                                        flag = true;
                                        strcpy(st, tmp+1);
                                }
                                printf("<%s>\n", tmp+1);
                                fprintf(ofp, "<%s>\n", tmp+1);
                                break;
                        case 0:
                                if (flag) {
                                        printf("</%s>\n\n", st);
                                        fprintf(ofp, "</%s>\n\n", st);
                                        flag = false;
                                }
                                break;
                        default :
                                p = strchr(tmp, '=');
                                if (p == NULL)
                                        printf("error\n");
                                else {
                                        *p = '\0';
                                        sscanf(tmp, " %s", name);
                                        sscanf(p+1, " %s", val);
                                        printf("\t<%s>%s</%s>\n", name, val, name);
                                        fprintf(ofp, "\t<%s>%s</%s>\n", name, val, name);
                                }
                }
        }
        if (flag)
                printf("</%s>\n", st);
                fprintf(ofp, "</%s>\n", st);
        fclose(fp);
        fclose(ofp);

        return 0;
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: ini 格式文件是一种用于存储配置信息的常用格式xml 格式文件是一种用于存储结构化数据的常用格式。 除了 inixml 格式之外,还有其他类似的文件格式,如: 1. JSON 格式: 用于存储结构化数据,常用于 API 接口和网络传输。 2. YAML 格式: 用于存储配置信息,常用于配置文件和部署脚本。 3. TOML 格式: 用于存储配置信息,常用于配置文件。 4. HOCON 格式: 用于存储配置信息,常用于配置文件。 5. INI 格式: 用于存储配置信息,常用于配置文件。 ### 回答2: 除了inixml格式文件,还有很多其他类似的文件格式,这里列举一些常见的: 1. JSON(JavaScript Object Notation):JSON是一种轻量级的数据交换格式,易于阅读和编写,常用于Web应用程序和API中。 2. YAML(YAML Ain't Markup Language):YAML是一种人类可读的数据序列化格式,常用于配置文件、数据传输和存储。 3. CSV(Comma Separated Values):CSV是一种将数据表格以纯文本形式存储的格式,用逗号分隔不同的字段。 4. TOML(Tom's Obvious, Minimal Language):TOML是一种易于阅读和编写的配置文件格式,常用于配置文件和元数据。 5. Properties文件:Properties文件是一种常见的键值对配置文件格式,常用于Java应用程序中存储配置信息。 6. JSON5:JSON5是JSON的扩展格式,支持一些额外的特性,如可以使用注释、允许使用单引号等。 7. HCL(HashiCorp Configuration Language):HCL是一种用于配置和模板的语言,常用于大型系统的配置文件。 8. XHTML(Extensible Hypertext Markup Language):XHTML是一种XML的应用,用于定义网页的结构和内容。 这些文件格式在不同的领域和应用中有不同的使用情景,可以根据具体需求选择合适的格式。 ### 回答3: 除了INIXML格式文件,还有以下几种常见的类似格式: 1. JSON(JavaScript Object Notation):JSON是一种轻量级的数据交换格式,常用于数据的序列化和传输。它具有良好的可读性和易于解析的特点,被广泛应用于Web开发和API数据传输。 2. YAML(YAML Ain't Markup Language):YAML是一种人类友好的数据序列化格式,被设计为易于阅读和编写,并且可以与多个编程语言进行交互。YAML常用于配置文件和数据的表示。 3. Properties文件:Properties文件是一种非常简单的文本文件格式,用于存储键值对形式的数据。常用于Java开发中的配置文件,可以通过读写Properties文件来进行配置信息的保存和读取。 4. TOML:TOML是一种简单的配置文件语言,目标是为各种类型配置文件的统一格式。TOML具有易于阅读和写的特点,可以表示包括字符串、数值、日期和时间等多种类型的数据。 这些类似于INIXML格式文件格式,在不同的应用场景中,都可以作为配置文件或数据交换的工具。开发者可以根据具体需求选择合适的文件格式来存储和处理数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值