C语言将数据表输出到终端

目录

 

为什么要写这篇

函数实现思路(伪代码)

函数实现及测试程序

一点儿认识


为什么要写这篇

本来只是想写输出到文本文档,但后来觉得还有一种输出方式,输出到终端,虽然相比输出到文本文档认为要简单一些,但还是实现一下吧。

最终的效果图如下,函数的参数传入与输出到文本文档函数一样:数组首地址,数组大小,以及列数。C语言将数据表输出到文本文档

函数实现思路(伪代码)

函数实现及测试程序

该程序可在菜鸟C在线工具中运行

#include <stdio.h>
#include <stdint.h>


#define ARRAY_SIZE      101

const uint16_t motor_ntc_mV_array[ARRAY_SIZE] = 
{ 
    453,    472,    492,    513,    534,    556,    579,    602,    626,   651,
    676,    701,    728,    754,    782,    809,    838,    867,    896,   926,
    956,    987,    1018,   1049,   1081,   1114,   1146,   1179,   1212,  1245,
    1278,   1312,   1346,   1379,   1413,   1447,   1481,   1515,   1549,  1582,
    1616,   1649,   1682,   1715,   1748,   1781,   1813,   1845,   1877,  1908,
    1939,   1970,   2000,   2030,   2059,   2088,   2116,   2145,   2172,  2200,
    2226,   2252,   2278,   2303,   2328,   2352,   2376,   2399,   2422,  2444,
    2466,   2488,   2508,   2529,   2549,   2568,   2587,   2606,   2624,  2642,
    2659,   2676,   2692,   2708,   2723,   2738,   2753,   2768,   2782,  2795,
    2809,   2821,   2834,   2847,   2858,   2870,   2881,   2892,   2903,  2913,
    2923
};

void table_to_terminal(uint16_t* array, uint16_t num, uint8_t column);

/**
 * table_to_terminal
 * @brief   将数据表输出到终端
 * @param   array 参数描述: 数组首地址
 * @param   num 参数描述: 数组元素个数
 * @param   column 参数描述: 要输出为几列
 */
void table_to_terminal(uint16_t* array, uint16_t num, uint8_t column)
{
    printf("const uint16_t motor_ntc_mV_array[%d] = \n", num);      ///< 此处可更改
    printf("{ \n");

    for(uint8_t i = 0; i < num; i++)
    {
        if(i != (num-1))
        {
            printf("\t%d,", array[i]);
        }else
        {
            printf("\t%d", array[num-1]);
        }

        if(i % column == (column-1))
        {
            printf("\n");
        }
        if(i == (num - 1))
        {
            printf("\n");
            printf("}");
            printf(";");  ///< ; 需单独输出
            printf("\n");
        }
    }
}

int main(void)
{
    table_to_terminal(&motor_ntc_mV_array[0], sizeof(motor_ntc_mV_array)/sizeof(motor_ntc_mV_array[0]), 7);

    return 0;
}

一点儿认识

两者的不足之处是数据表头需要更改函数内部语句,对于封装为一个函数来说,这是很让人不爽的事情,目前还没有想到什么好的解决方法,之后可能改成字符串作为函数的一个输入参数,甚至干脆封装成一个结构体。目前没有实现倒序输出,改起来应该还算简单,之后有时间再补充上。

猜你喜欢

转载自blog.csdn.net/quanquanxiaobu/article/details/112225766