精华内容
下载资源
问答
  • C语言生成DLL模板

    2016-12-29 21:49:24
    C语言生成DLL模板
  • 主要介绍了c语言生成随机uuid编码示例,需要的朋友可以参考下
  • C语言生成json

    2020-12-13 23:47:12
    C语言生成json前言一、json是什么二、C语言生成json开发步骤1.下载cJSON库文件2.使用cJSON接口生成json总结 前言         我们在写应用程序的时候,经常需要把一些数据...
    
    
    


    前言

            我们在写应用程序的时候,经常需要把一些数据存储到文件,方便程序启动时使用,或导出给其他应用程序使用。常用的用于配置保存和数据交换的文件格式有:ini、json和xml。我最初使用ini做为应用程序的启动配置文件,当应用程序启动时,根据ini文件里的配置项加载资源来启动程序。使用xml文件来存储结构比较复杂的配置或交换数据。而json这种结构简单的文件格式,经常看见测试部的小姐姐们用来写测试用例。这篇文章的主要目的是记录我是怎么使用C语言来生成json的,因为最近在写一个练习题:使用C语言实现aidl转json。练习题没有完全做好,所以先写如何使用C语言生成json文件。

    一、json是什么

            JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。-- 来自百度百科

    二、C语言生成json开发步骤

    1.下载cJSON库文件

             cJSON库文件一共两个文件:cJSON.h和cJSON.c。这两个文件可以从李老师的AWTK开源项目中可以找到:https://github.com/zlgopen/awtk/blob/master/3rd/cjson。

    2.使用cJSON接口生成json

    例1、创建简单的对象,包含名字和年龄:如:
    名字是字符串;年龄是数字。
    {
            "name": "zhang san",
             "age": 9
    }
    源码如下:
    	cJSON* root = NULL;
    	char* out = NULL;
    	root = cJSON_CreateObject();
    	cJSON_AddStringToObject(root, "name", "zhang san");//添加字符串键值对
    	cJSON_AddNumberToObject(root , "age", 9);//添加数字键值对
    	out = cJSON_Print(root);//转成带格式的字符串,含空格和换行等格式
    	printf("%s\n", out);
    
    输出结果:

    在这里插入图片描述

    例2、创建带简单数组的对象,如:

    数组包含简单的字符串。

    {
    “name”: “zhang san”,
    “age”: 9,
    “curriculum”: [“Chinese”, “English”]
    }

    源码如下:
      cJSON* root = NULL;
      char* out = NULL;
      root = cJSON_CreateObject();
      cJSON_AddStringToObject(root, "name", "zhang san");
      cJSON_AddNumberToObject(root , "age", 9);
      
      cJSON* curriculum_arr = cJSON_CreateArray();
      cJSON_AddItemToArray(curriculum_arr, cJSON_CreateString("Chinese"));
      cJSON_AddItemToArray(curriculum_arr, cJSON_CreateString("English"));
    
      cJSON_AddItemToObject(root, "curriculum", curriculum_arr);
      out = cJSON_Print(root);
      printf("%s\n", out);
    
    输出结果:

    在这里插入图片描述

    例3、创建带复杂数组的对象,如:

    数组内包含对象,对象包含一些子项。

    {
    “name”: “zhang san”,
    “age”: 9,
    “curriculum”: [{
    “9:00-9:45”: “Chinese”,
    “rest”: 15,
    “10:00-10:45”: “English”
    }, {
    “14:00-14:45”: “PE”,
    “rest”: 15,
    “15:00-15:45”: “mathematics”
    }]
    }

    源码如下:
      cJSON* root = NULL;
      char* out = NULL;
      root = cJSON_CreateObject();
      cJSON_AddStringToObject(root, "name", "zhang san");
      cJSON_AddNumberToObject(root , "age", 9);
      
      cJSON* curriculum_arr = cJSON_CreateArray();
      cJSON* curriculum_time = cJSON_CreateObject();
      cJSON_AddStringToObject(curriculum_time, "9:00-9:45", "Chinese");
      cJSON_AddNumberToObject(curriculum_time, "rest", 15);
      cJSON_AddStringToObject(curriculum_time, "10:00-10:45", "English");
      cJSON_AddItemToArray(curriculum_arr, curriculum_time);
    
      cJSON* curriculum_time_afternoon = cJSON_CreateObject();
      cJSON_AddStringToObject(curriculum_time_afternoon, "14:00-14:45", "PE");
      cJSON_AddNumberToObject(curriculum_time_afternoon, "rest", 15);
      cJSON_AddStringToObject(curriculum_time_afternoon, "15:00-15:45", "mathematics");
      cJSON_AddItemToArray(curriculum_arr, curriculum_time_afternoon);
    
      cJSON_AddItemToObject(root, "curriculum", curriculum_arr);
      out = cJSON_Print(root);
      printf("%s\n", out);
    
    输出结果:

    在这里插入图片描述


    总结

    cJSON常用的几个函数总结如下:
    cJSON_CreateObject :生成节点对象,可以使用它创建根节点和子节点
    cJSON_AddStringToObject:给指定节点添加值是字符串类型的子项
    cJSON_AddNumberToObject:给指定节点添加值是数值类型的子项
    cJSON_CreateArray:创建数组对象
    cJSON_AddItemToArray:给数组添加子对象
    cJSON_AddItemToObject:给父节点添加子对象
    cJSON_CreateString:生成一个字符串类型对象
    cJSON_CreateNumber:生成一个数值类型对象
    cJSON_CreateBool:生成一个bool类型对象
    cJSON_Delete:释放内存
    cJSON库还有很多接口,如果在开发过程中需要使用,可以查看源码,这里仅列出一些最常用的接口,也是我编写练习题的时候使用到的接口,仅供参考。走一步,留下一个脚印,学习快乐~
    展开全文
  • C语言生成LFM信号通过带通滤波器,C语言作业,用于参考与学习 。
  • 在C语言中,rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,这篇文章主要介绍了使用c语言生成随机数的示例,需要的朋友可以参考下
  • c语言生成 二维码

    千次阅读 2019-11-04 10:03:16
    c语言生成 二维码 这是第一次 写文档也是自己做的一些项目的感触 就简单记录一下。 二维码的粗略信息 想要生成一个二维码,就必须准备好你生产的内容。二维码分为 H ,Q,M,L 四种容错等级 和 30个版本 第一个...

    c语言生成 二维码

    这是第一次 写文档也是自己做的一些项目的感触 就简单记录一下。

    二维码的粗略信息

    想要生成一个二维码,就必须准备好你生产的内容。二维码分为
    H ,Q,M,L 四种容错等级 和 30个版本 第一个版本为 21 * 21
    个像素点. 之后的每个版本 都是增加 4个像素点 。共计30个版本 .
    大小就是 21 到 177 。

    生产二维码信息

    生产二维码需要信息 根据你要生产的信息的多少制定一个
    qrtext 的信息 可以定义一个信息字符数组 例如 for info[64];

    QRcode * qrCode;
    int version = 8;
    //  二维码的版本 也可以理解为二维码大小 ;
    QRecLevel level = QR_ECLEVEL_L;
    //二维码的容错程度  这里是最低的L
    QRencodeMode hint = QR_MODE_8;
    //二维码的模式
    int casesensitive = 1;
    qrCode = QRcode_encodeString(QRTEXT, version, level, hint, casesensitive);
    //生产二维码的数据   
    //qrtext  就是我们二维码信息
    

    我们就把二维码的大小等信息进行的设定.之后就是生产一张位图将信息写入到其中。

    生成位图和写入信息

    if (NULL == qrCode)
    {
    printf(“QRcode create fail\n”);
    }

    snprintf(buff,20,"%s",QR_CODE_FILE);
    
    FILE * pf = fopen(buff, "w+");
    if (NULL == pf)
    {
    	printf("file open fail.\n");
    	fclose(pf);
    	//return -1;
    }
    int width = qrCode->width;
    int height = qrCode->width;
    int biCount = 24;
       
    int iexwidth = width;
    if(width % 8){
    	iexwidth += 8;
    }
    
    iexwidth /= 8;
    
    int lineByte = (iexwidth + 3) & ~0x03;
    BITMAPFILEHEADER bitMapFileHeader;
    bitMapFileHeader.bfType = 0x4D42; 
    bitMapFileHeader.bfSize = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + 2*sizeof(RGBQUAD) + lineByte * height; 
    bitMapFileHeader.bfReserved1 = 0; 
    bitMapFileHeader.bfReserved2 = 0; 
    bitMapFileHeader.bfOffBits = sizeof(BITMAPFILEHEADER) + sizeof(BITMAPINFOHEADER) + 2*sizeof(RGBQUAD); 
    
    
    BITMAPINFOHEADER bitMapInfoHeader;
    bitMapInfoHeader.biSize = 40;
    bitMapInfoHeader.biWidth = width; 
    bitMapInfoHeader.biHeight = height;  
    bitMapInfoHeader.biPlanes = 1;
    bitMapInfoHeader.biBitCount = biCount;	   
    bitMapInfoHeader.biCompression = 0;   
    bitMapInfoHeader.biSizeImage = 296;   
    bitMapInfoHeader.biXPelsPerMeter = 0; 
    bitMapInfoHeader.biYPelsPerMeter = 0;	
    bitMapInfoHeader.biClrUsed = 0; 	
    bitMapInfoHeader.biClrImportant = 0;  
    

    //生成 1 ,2,4,8色位图时需要加入调色板

    unsigned char * pBMPData = (unsigned char *)malloc(lineByte * height);//new  unsigned char[lineByte * height];
    memset(pBMPData, 0, lineByte * height);
    
    unsigned char * qrData = qrCode->data;
    int ibit;
    int ibyte;
    int i,j;
    for (i=0; i < height; i++)
     {
    	 for ( j = 0; j < lineByte/3; j++)
    	 {
    		 if (*(qrData) & 1)
    		 {
    			 //设置rgb颜色,可自定义设置,这里设为黑色。
    			 *(pBMPData + lineByte * i + 3 * j) = 0;
    			 *(pBMPData + lineByte * i + 3 * j + 1) = 0;
    			 *(pBMPData + lineByte * i + 3 * j + 2) = 0;
    		 }
    		 qrData++;
    	 }
     }
    

    //生产位图时应注意默认的背景 最好自己把背景设置好。

    count = fwrite(pBMPData, sizeof(unsigned char), lineByte * height, pf);
    fclose(pf);
    
    free(pBMPData);
    pBMPData = NULL;
    QRcode_free(qrCode);
    //后面为释放掉资源
    }
    我们就生成好了一个24位位图的二维码了。
    
    展开全文
  • C语言生成可逆矩阵代码实现
  • 利用C语言生成一张可以玩的数独,但只是原始数据
  • 本篇文章是对使用C语言生成简单格式的xml的实现代码进行了详细的分析介绍,需要的朋友参考下
  • 利用C语言生成wave音频文件,内容为简单的正弦波函数。
  • C语言生成随机数

    万次阅读 多人点赞 2015-10-24 21:10:40
    C语言生成随机数 rand函数 函数介绍 rand()函数是产生随机数的一个随机函数: #include int rand(void); 返回值: rand()返回值为一随机数值,范围在0至RAND_MAX 间(RAND_MAX定义在stdlib.h,其值为...

    C语言生成随机数

    rand函数

    函数介绍

    rand()函数是产生随机数的一个随机函数:

    #include<stdlib.h>
    
    int rand(void);

    返回值:
    rand()返回值为一随机数值,范围在0至RAND_MAX 间(RAND_MAX定义在stdlib.h,其值为2147483647)。

    注:在调用此函数前,必须先利用srand()设好随机数种子。如果未设随机数种子,rand()在调用时会自动设随机数种子为1。

    示例一:

    代码:

    /*************************************************************************
        > File Name: rand.c
        > Author: AnSwEr
        > Mail: 1045837697@qq.com
        > Created Time: 2015年10月24日 星期六 20时50分59秒
     ************************************************************************/
    
    /*
     * 产生1到6的随机数
     */
    
    #include<stdio.h>
    #include<stdlib.h>
    
    int main(void)
    {
        int i = 0;
    
        for(i=0;i<10;i++)
        {
            printf("%d ",rand()%6+1);
        }
        printf("\n");
    
        return 0;
    }

    运行结果:
    这里写图片描述

    说明:这里两次运行的结果相同,是因为未利用srand()设置随机数种子,所以rand()在调用时会自动设随机数种子为1。

    srand函数

    函数介绍

    srand函数是随机数发生器的初始化函数:

    #include<stdlib.h> 
    
    void srand (unsigned int seed);

    参数:
    seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,那么rand()所产生的随机数值会像上面的示例一每次就会一样。

    示例二:

    代码:

    /*************************************************************************
        > File Name: srand.c
        > Author: AnSwEr
        > Mail: 1045837697@qq.com
        > Created Time: 2015年10月24日 星期六 21时01分58秒
     ************************************************************************/
    
    /*
     * 产生1-6的随机数
     */
    
    #include<stdio.h>
    #include<stdlib.h>
    #include<time.h>
    
    int main(void)
    {
        int i = 0;
    
        srand((unsigned int)time(NULL));
        for(i=0;i<10;i++)
        {
            printf("%d ",rand()%6+1);
        }
        printf("\n");
    
        return 0;
    }

    运行结果:
    这里写图片描述

    哈哈,这下两次结果就不同了吧。

    总结

    关于随机数的知识就先总结这么多,以后碰到更复杂的再继续。

    反馈与建议

    展开全文
  • 本文给大家介绍的是在Windows系统中使用C#调用C语言生成的DLL文件的一种思路,非常的简单实用,有需要的小伙伴可以参考下
  • c语言生成一组不同的随机数,大家参考使用吧
  • C语言生成的曼德布罗分型图形,混沌课程讲义程序,空格键是放大
  • C语言生成随机数和随机数组

    万次阅读 多人点赞 2019-12-03 20:18:21
    C语言生成随机数和随机数组 time函数要包含头文件<time.h> rand函数要包含头文件<stdlib.h> 随机数 int a; srand((unsigned)time(NULL)); // 播种 a = rand() % 200 + 1; 随机数组 #include <...

    C语言生成随机数和随机数组


    time函数要包含头文件<time.h>
    rand函数要包含头文件<stdlib.h>

    随机数

    int a;
    srand((unsigned)time(NULL)); // 播种
    a = rand() % 200 + 1;
    

    随机数组

    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    
    // 生成元素为1-200的随机数组
    int main()
    {
    	int a[100],aa;
    	int i;
    	int count = 0;
    
    	// 按时间重新播种
    	srand((unsigned)time(NULL));
    
    	for (i = 0; i < 100; i++)
    	{
    		aa = rand() % 200 + 1;
    		a[i] = aa;
    	}
    
    	for (i = 0; i < 100; i++)
    	{
    		printf("%-5d", a[i]);
    		count++;
    		if (count == 10)
    		{
    			printf("\n");
    			count = 0;
    		}
    			
    	}
    
    	system("pause");
    	return 0;
    }
    
    展开全文
  • C语言生成真正随机数,可设定均匀分布随机数的区间
  • 网上关于C#怎么调用C语言生成的链接库的资料太少了,所以我在这里详细介绍怎么用C语言生成动态链接库,怎么用C#下载。由于C语言生成动态链接库需要使用mingw,所以我从三个部分来介绍。一、下载mingw mingw官网上给...
  • C语言生成随机数的代码

    千次阅读 2019-05-05 06:09:49
    把开发过程中比较常用的代码做个记录,下边代码内容是关于C语言生成随机数的代码,希望能对各朋友有一些帮助。#include <stdlib.h> #include <time.h> 复制代码 ...
  • 求一个用c语言生成完整数独的算法![图片说明](http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/21.gif),最好效率能高一些,比较急用哦,谢谢大佬们
  • 在Codeblocks中首先用C语言生成一个迷宫并用递归算法求解一条可行的路径
  • C语言生成正弦波数据

    2020-04-05 17:36:43
    通过C语言代码来生成一组正弦波数据,通过不同的公式可生成不同大小和相位的正弦波数据。并通过串口将生成的数据打印出来。
  • C语言生成随机字符串

    千次阅读 2018-04-16 21:42:34
    // C语言生成随机字符. // VS2017 15.6.4 #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; const unsigned char allChar[63] = "0123456789...
  • 提供四种目前最流行好用的C语言生成流程图的工具,总有一款适合你。 我的感觉是各有千秋,找你喜欢的吧。
  • c语言生成六位的随机密码,供大家一起共同分享学习。
  • C语言生成程序问题

    2015-03-01 19:43:23
    C语言生成程序问题 2014-01-13 21:09劳雷欧 | 分类:C/C++ | 浏览745次 我用VS2013写好C语言程序调试运行后就在debug文件夹下生成了EXE文件,可以在本机运行。但是这个EXE文件在别的没装过VS2013的电脑上就不...
  • C语言生成不重复的随机数数组

    千次阅读 2019-08-17 21:43:18
    C语言生成不重复的随机数数组 //一个随机数数组生成算法,生成0-n不重复的随机数数组 //本例子使用的是0-99的范围,参数可改 //如果是在最后面的数组,使用完,丢弃 //如果是前面的数则用后面不可取到的数替换 #...
  • C语言生成随机uuid编码

    千次阅读 2016-12-22 00:26:45
    C语言生成随机uuid编码转自:http://www.open-open.com/code/view/1431934941958 #include #include /** * Create random UUID * * @param buf - buffer to be filled with the uuid string */ char *...
  • 打开c语言生成exe文件,出现闪退的解决方法

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,874
精华内容 5,949
关键字:

c语言生成

c语言 订阅