C语言中文件读写和json格式的使用

在c语言中可以用fopen函数打开一个文件,并对文件进行读写
头文件是头文件:#include<stdio.h>

fopen

FILE*fopen(const char *path,const char*mode)

参数说明:

path:是一个字符串,包含欲打开的文件路径及文件名
mode:mode字符串则代表着流形态
r: 读,该文件必须存在;
w: 打开只写文件,若文件存在则长度清为0,即该文件内容消失,若不存在则创建该文件
r+: 以读/写方式打开文件,该文件必须存在
w: 打开可读/写文件

fgets

char *fgets(char *str, int n, FILE *stream)

str – 这是指向一个字符数组的指针,该数组存储了要读取的字符串。
n – 这是要读取的最大字符数(包括最后的空字符)。通常是使用以 str 传递的数组长度。
stream – 这是指向 FILE 对象的指针,该 FILE 对象标识了要从中读取字符的流。
每次读取一行

示例

#include<stdio.h>
#include<stdlib.h>
#include "json.h"
int main(void)
{
        FILE *fp;
        char buff[200]={0};
        json_object *pObject = NULL;//定义json的结构体
        if ((fp = fopen("./file_config", "r")) == NULL) {//打开以只读的形式file_config文件
                printf("file isn't exist\n");
                return -1; 
        }   
//      for(int i = 0; i< 3 ; i++) {
                fgets(buff, 100,fp);//读取文件中的内容到buff中去,大小为100
//              printf("%s\n",buff);
//      }
        pObject = json_tokener_parse(buff);//把读出到的内容转化为json格式
        printf("%s\n",json_object_to_json_string(pObject)); //把json格式的数据转化为json格式的字符串   
        json_object_object_foreach(pObject, key, value) {//把json格式的数据分割为key和value
                printf("%s:%s\n", key,json_object_to_json_string(value));
        }   
        fclose(fp);//关闭文件
        return 0;
}

file_config
要使用上面的函数解析json格式的数据,文件中的内容要类似{“key”: value} 这样的形式

{"Min":2, "MAX":2, "Req":3,"Request":1}



Makefile

CC=gcc
INC=/usr/local/include/json-c/
LIB=json-c
LIB_PATH=/usr/local/lib/

file:file.c
        $(CC) -o $@ $< -I$(INC) -L$(LIB_PATH) -l$(LIB)

.PHONY clean:
        -rm -f file

结果

kayshi@ubuntu:~/code/file_opration$ ./file 
{ "Min": 2, "MAX": 2, "Req": 3, "Request": 1 }
Min:2
MAX:2
Req:3
Request:1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值