c++中 string 转 __time64_t

C++对输入string字符串进行格式判断并转化为time_t时间戳 C++对输入string字符串进行格式判断并转化为time_t时间戳 前言 学校实验要求输入一个时间段,在此时间段内进行查询统计。 我的思路是规定格式,让用户按照格式分别输入开始时间和结束时间,对时间格式进行判断,为有效时间后,将string字符串转化为time_t时间戳,通过时间戳比大小获得相应时间段的数据。 在格式判断方面,我最初是一大连串if条件判断,耗时耗力也冗杂易错。后来经过男票的提醒,... 阅读详情
        COleDateTime datetime;      
        datetime.ParseDateTime(startTime);

        struct tm tmTitmTime.tm_sec=datetime.GetSecond();
        tmTime.tm_min=datetime.GetMinute();
        tmTime.tm_hour=datetime.GetHour();
        tmTime.tm_mday=datetime.GetDay();
        tmTime.tm_mon=datetime.GetMonth();
        tmTime.tm_year=datetime.GetYear();

        __time64_t tmpStartTime= mktime(tmTime);
C++时间处理实战:从time_t到localtime,掌握时间戳与日期转换 时间戳是计算机系统中表示时间点的核心概念,通常以自Unix纪元(1970年1月1日)以来的秒数存储。其原理是将连续的时间离散化为整数,便于存储、计算和跨平台交换。在C/C++编程中,标准库提供了`time()`函数获取当前时间戳,返回`time_t`类型值。这一基础机制为日志记录、性能分析和任务调度等场景提供了统一的时间基准。然而,将时间戳转换为人类可读的日期时间格式时,需使用`localtime()`函数进行转换,该函数会依据系统时区设置将UTC时间戳解析为包含年、月、日等字段的`tm`结构体。值得注意的 阅读详情

相关推荐

C++时间处理全解析:从time/localtime到线程安全与跨平台实践

在软件开发中,时间戳处理是基础且关键的技术环节,涉及系统时间获取、时区转换和格式化输出等核心概念。其原理基于计算机系统维护的纪元时间,通过标准库函数转换为人类可读的日历时间。掌握时间处理技术对日志记录、性能分析和任务调度等场景具有重要价值,能确保系统事件的准确排序和跨时区协同。本文聚焦C++中经典的time和localtime函数,深入探讨其线程安全隐患、跨平台差异及2038年问题等实际工程挑战,并提供封装方案与避坑指南,帮助开发者构建健壮的时间处理模块。

weixin_33980459的博客 352

C++ 时间操作

(1)__time64_t curTime = ::time(NULL); (2) CTime curTime; curTime = CTime::GetCurrentTime(); CString strCurTime; strCurTime.Format( _T("%04d/%02d/%02d %02d:%02d:%02d"), curTime.GetYear(), curTime.GetMonth(), curTime.GetDay(),curTime.GetH...

ucliaohh的专栏 1713

C++字符串操作:从std::string原理到高效工程实践

字符串处理是编程中的基础操作,涉及内存管理、数据结构和算法等核心概念。在C++中,std::string通过RAII(资源获取即初始化)机制自动管理内存,实现了类型安全和高效操作。其底层采用短字符串优化(SSO)等策略,在栈上存储短字符串以避免堆分配开销,显著提升性能。理解这些原理对于编写高性能、安全的代码至关重要。在实际工程中,字符串操作广泛应用于配置文件解析、网络数据处理、日志系统等场景。本文聚焦C++字符串,深入解析std::string的设计与高效使用方法,涵盖内存管理、查找比较、数值转换等关键操作

weixin_33970449的博客 547

C语言学习日记(5)——time_t的类型与typedef

昨天输出时间的程序里面定义了一个time_t类型的变量,这是一种什么样的变量呢?小猫知道的C语言中的内置数据类型有char,int,long,float,double等等,但对time_t类型不太了解。因为在写程序时用到了time.h头文件,所以可能在time.h头文件中可以找到它的定义,试试看吧。 小猫打开D:\mingw64\x86_64-w64-mingw32\include目录,找到了time.h这个头文件,在记事本里打开,查找time_t,发现这样一段代码: #ifndef _TIME_T_

u010340279的博客 7960

Disruptor-cpp:C++高性能内存队列实现原理与实战应用

在并发编程领域,线程间高效、低延迟的数据交换是核心挑战。传统队列常因锁竞争、内存分配和缓存失效成为性能瓶颈。其原理在于通过预分配内存、序号驱动和避免伪共享等设计,将数据交换的延迟和吞吐量优化到极致。这项技术的价值在于为金融交易、实时风控、游戏服务器等对性能有严苛要求的场景提供了可预测的高性能解决方案。Disruptor-cpp作为该范式的C++实现,通过利用C++11原子操作和缓存行填充等技术,让开发者能够在C++生态中构建超低延迟的生产者-消费者系统,例如实现高吞吐的行情分发或订单处理引擎。

weixin_33698823的博客 552

主成分分析避坑指南:为什么你的PCA结果总是不理想?

本文深入剖析了主成分分析(PCA)在实际应用中效果不佳的常见原因与解决方案。针对数据标准化、协方差矩阵选择、主成分数量确定、载荷矩阵解读等关键环节,提供了详细的避坑指南和诊断方法,并探讨了PCA的局限性及非线性数据结构下的备选方案,帮助数据分析师获得更稳健、可解释的降维结果。

convnet3designer的博客 511

C/C++中的时间大全

1.概念在C/C++中,对字符串的操作有很多值得注意的问题,同样,C/C++对时间的操作也有许多值得大家注意的地方。最近,在技术群中有很多网友也多次问到过C++语言中对时间的操作、获取和显示等等的问题。下面,在这篇文章中,笔者将主要介绍在C/C++中时间和日期的使用方法.通过学习许多C/C++库,你可以有很多操作、使用时间的方法。但在这之前你需要了解一些"时间"和"日期"的概念,主要有以下几个:

Mycro的专栏 2201

电流镜设计实战:从基础到高级技巧(附常见问题解决方案)

本文从工程实战角度,系统讲解了电流镜设计从基础原理到高级技巧的全过程。深入剖析了匹配精度、输出阻抗等核心矛盾,并详细介绍了共源共栅(Cascode)结构如何平衡电压裕度与输出阻抗。文章还重点探讨了工艺偏差、版图应力效应等实战中的“隐形杀手”,并提供了常见问题的解决方案与调试技巧,旨在帮助工程师设计出鲁棒性更强的模拟电路。

blockchain9miner的博客 731

C/C++中的日期和时间

C/C++中的日期和时间撰文/周翔摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件中声明的各种函数和数据结构的详细使用方法。关键字:UTC(世界标准时间),Calendar Time(日历时间),epoch(时间点),clock tick(时钟计时单

6102

数据仓库的复用性:设计和构建一个高复用性的数仓

数据仓库的复用性是指在数据仓库的设计和使用过程中,能够实现数据、模型、流程、工具等多个层面的重复利用,减少重复开发,提高开发效率,降低维护成本,并增强灵活性和可扩展性。

z1941563559的博客 1307

【从零开始学Skynet】实战篇《球球大作战》(一):功能设计

为了能把之前在基础篇中学习到的Skynet的各种知识结合起来,所以在实战篇中,我们准备开发一个完整的游戏案例《球球大作战》,介绍分布式游戏服务端的实现方法。

我是一条寻水的鱼 2978

linux下c++实现string与time_t互相转换

#include <time.h> #include <string> #include <iostream> using namespace std; time_t string2time_t(const string string_time); string time_t2string(const time_t time_t_time); int main() { string strTime = "2014/03/28 18:25:26"; ti.

乌托邦 1401

【深圳】IBM V3500存储维修 更换控制器故障

今天给大家分享的是深圳.福田区一个电商客户公司一台IBM Storwize v3500存储控制器故障从远程诊断 收集日志 分析结果的实际案例,如图所示通过存储管理口登陆进去后直接看到少了一个控制器,经过工程师分析日志后判定为该控制器损坏,接下来更换控制器配件,标准套件的控制器不带子卡和电池,所以需要把故障控制器上的子卡和电池拆下来装到新控制器上,这个电池拆还需要点技巧,接着把新的控制器插回V3500主机,等待大约十分钟后,新控制器指示灯全绿,管理界面看到节点已联机;冠峰科技-爱科技爱分享。

OuYangYuXi的博客 4576

linux c++ 字符串转数字,linux下c++实现string与time_t互相转换

#include #include #include using namespace std;time_t string2time_t(const string string_time);string time_t2string(const time_t time_t_time);int main(){string strTime = "2014/03/28 18:25:26";time_t ti...

weixin_34581086的博客 380

利用 Docker Distribution 搭建私有的 Docker Registry

1、拓扑

weixin_44983653的博客 1067

多图详解VSCode搭建Python开发环境

本文通过多图的方式详细介绍了VSCode搭建Python开发环境,希望能对学习Python的同学们有所帮助。 文章目录 1. VSCode的介绍和安装 2. 安装插件 2.1 安装中文插件 2.2 安装Python插件 2.3 安装远程插件 3. 远程连接服务器 3.1 配置ssh 3.2 运行代码 3.3 调试代码

weixin_43178406的博客 8万+

c 串转string_c/c++日期时间处理与字符串string转换

在c/c++实际问题的编程中,我们经常会用到日期与时间的格式,在算法运行中,通常将时间转化为int来进行计算,而处理输入输出的时候,日期时间的格式却是五花八门,以各种标点空格相连或者不加标点。首先,在c中,是有一个标准的日期时间结构体的,在标准库wchar.h内,我们可以看到结构体tm的声明如下:1 #ifndef _TM_DEFINED2 structtm {3 int tm_s...

weixin_29007243的博客 346

基于Vivado MIG IP核的DDR3读写实验(top_rom_ddr/ddr_top)

一、前言 关于Vivado MIG IP核详细配置可以参考我之前的文章:基于Vivado MIG IP核的DDR3控制器(DDR3_CONTROL) 关于MIG IP核的用户端的接口时序可以参考这篇文章:XILINX 的 MIG IP(非AXI4)接口时序以及控制 二、实验内容 本次实验的内容主要是通过MIG IP核向DDR3读写数据,DDR3的接口时序由ddr_top模块提供: ddr_top模块的数据来源是wr_fifo,wr_fifo的数据实际来自top_sd_photo模块(本实验仿真

耐心的小黑的博客 3027

c++ 标准库格式化时间戳(既将时间戳转字符串,字符串转时间戳)

//时间戳转字符串 std::string Time_t2String(__time64_t stamp) { tm* stamp_tm = localtime(&stamp); std::ostringstream os; os << std::put_time(stamp_tm, "%Y:%m:%d %H:%M:%S"); return os.str(); } //字符串转时间戳 __time64_t String2Time_t(std::string time_

qq_25160759的博客 3004

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

time_t tm timeval 和 时间字符串的转换

1、常用的时间存储方式 1)time_t类型,这本质上是一个长整数,表示从1970-01-01 00:00:00到目前计时时间的秒数,如果需要更精确一点的,可以使用timeval精确到毫秒。 2)tm结构,这本质上是一个结构体,里面包含了各时间字段 struct tm { int tm_sec; /* seconds after the m

wangcg123的专栏 6113

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

边用llama.cpp边学C++:Windows 11下真实工程驱动的入门路径

C++是一门强工程导向的语言,其核心价值在于对内存、硬件和系统资源的直接掌控。理解std::vector的RAII语义、std::thread的生命周期管理、CUDA与CPU协同的构建逻辑,远比孤立记忆语法更重要。llama.cpp作为轻量级但工业级的大模型推理引擎,天然融合了现代C++关键特性(如constexpr、模板元编程、跨平台条件编译)与底层实践(mmap内存映射、AVX指令对齐、OpenMP并发优化),成为连接语法知识与真实系统行为的理想桥梁。尤其在Windows 11 + CUDA环境下,从编

weixin_33700350的博客 407

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ios c语言 时间转换成字符串,IOS开发时间格式转换之──C语言中time_t数据类型转为NSString类型...

一、time_t介绍包含文件:#ifndef__TIME_T#define__TIME_T/*避免重复定义time_t*/typedef longtime_t; /*时间值time_t 为长整型的别名*/#endif既然time_t实际上是长整型,到未来的某一天,从一个时间点(一般是1970年1月1日0时0分0秒)到那时的秒数(即日历时间)超出了长整形所能表示的数的范围怎么办?对time...

weixin_34742870的博客 243

c语言中日期转字符串,c/c++日期时间处理与字符串string转换

转自:https://www.cnblogs.com/renjiashuo/p/6913668.htmlhtml在c/c++实际问题的编程中,咱们常常会用到日期与时间的格式,在算法运行中,一般将时间转化为int来进行计算,而处理输入输出的时候,日期时间的格式倒是五花八门,以各类标点空格相连或者不加标点。ios首先,在c中,是有一个标准的日期时间结构体的,在标准库wchar.h内,咱们能够看到结构体...

weixin_33794626的博客 1184

c/c++日期时间处理与字符串string转换

在c/c++实际问题的编程中,我们经常会用到日期与时间的格式,在算法运行中,通常将时间转化为int来进行计算,而处理输入输出的时候,日期时间的格式却是五花八门,以各种标点空格相连或者不加标点。 首先,在c中,是有一个标准的日期时间结构体的,在标准库wchar.h内,我们可以看到结构体tm的声明如下: 1 #ifndef _TM_DEFINED 2 struct tm { 3

qianpeng4的博客 2407

ios c语言 时间转换成字符串,IOS開發時間格式轉換之──C語言中time_t數據類型轉為NSString類型...

一、time_t介紹包含文件:#ifndef__TIME_T#define__TIME_T/*避免重復定義time_t*/typedef longtime_t; /*時間值time_t 為長整型的別名*/#endif既然time_t實際上是長整型,到未來的某一天,從一個時間點(一般是1970年1月1日0時0分0秒)到那時的秒數(即日歷時間)超出了長整形所能表示的數的范圍怎么辦?對time...

weixin_35726575的博客 174

C++细节整理

2、time_t类型在linux与windows是有区别的:在linux下32位系统中time_t为32 位,64位系统中为64位。但是windows下就不一样了,无论 32位还是64位系统,time_t都是 64位的。故格式化时,一律将其转换为(long long),否则32位linux下会有告警;1、格式化时%I64d不要使用,虽然VS提示time_t,要用%I64d格式化,但是坚决不能用,因为它仅对windows系统有用,对于linux,会用64个空格占位,导致字符串中数字前面多了很多空格;

--厚德载物-- 442
上一篇: 如何写好一篇博客
下一篇: c++中类型转换积累(持续更新)
writeeee
博客等级 码龄18年 35粉丝 76原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值