欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 终端 数据表格

终端 数据表格

2025/3/13 10:58:25 来源:https://blog.csdn.net/weixin_45647912/article/details/143030107  浏览:    关键词:终端 数据表格
//
// Created by HongDaYu on 17 十月 2024.
//#ifndef HDYSDK_UTIL_H
#define HDYSDK_UTIL_H#include <cstdint>
#include <string>
#include <list>
#include <iomanip>
#include <memory>class dataGrid {
private:std::list<const char*> _table;int32_t col = 0;size_t width = 15;char split_char = '-';
public:explicit dataGrid(size_t w,int32_t col,char s='-'):width(w),split_char(s),col(col){}dataGrid &operator<<(const char*);const std::list<const char *> &getList(){return _table;}std::shared_ptr<char> table();
};#endif//HDYSDK_UTIL_H#include "util.h"
#include <list>
#include <iostream>
#include <cstring>
#include <strstream>dataGrid &dataGrid::operator<<(const char *row) {this->_table.push_back(row);return *this;
}std::shared_ptr<char> dataGrid::table() {size_t len = 0;size_t counts = 1;int32_t index = 0;for(auto it : _table){len+=strlen(it);counts++;}std::shared_ptr<char> grid(new char[len+width*counts*2]);std::ostrstream buffer(grid.get(),static_cast<int>(len+width*counts*2));for(auto it : _table){buffer << std::setw(static_cast<int>(width)) << std::left << it;if(((index+1)%col) == 0){if((index+1) == col)buffer << std::endl << std::setfill(split_char) << std::setw(static_cast<int>(width) * col) << "" << std::setfill(' ') << std::endl;elsebuffer << std::endl;}index++;}return grid;
}int main() {dataGrid buffer(15,2);buffer << "hello" << "world" << "very" << "good";std::cout << buffer.table();return 0;
}

在这里插入图片描述

一般只有开发人员在debug的时候,在调用一个库有点累赘

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词