【C++】处理CSDN博文源码
为了简化CSDN写博客的字体问题,给出一段代码,用于处理使用默认格式写完博客后,处理一次来解决字体问题。
代码片段
代码片段如下所示:
#include <iostream>
#include <string>
#include <fstream>
#include <strstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(int argc, char **argv)
{
if (3!=argc)
{
cerr << "[ ERROR ] error using this application" << endl;
cerr << "[ HELP ] " << argv[0] << " " << "inpute_filename output_filename" << endl;
return -1;
}
vector<wstring> newFileContains;
wifstream infile(argv[1], wifstream::ios_base::in);
if (!infile.is_open())
{
cerr << "[ ERROR ] failed to open the file of " << argv[1] << endl;
return -1;
}
wstring lines;
int cpos;
while(!infile.eof())
{
std::getline(infile, lines);
cpos = lines.find(wstring(L"<p>"));
if (cpos!=wstring::npos)
{
lines.append(L"<span style=\"font-family:Microsoft YaHei;font-size:16px;\">");
wcout << lines << endl;
newFileContains.push_back(lines);
continue;
}
cpos = lines.find(wstring(L"</p>"));
if (cpos!=wstring::npos)
{
lines.insert(0, wstring(L"</span>"));
wcout << lines << endl;
newFileContains.push_back(lines);
continue;
}
newFileContains.push_back(lines);
}
infile.close();
wofstream oufile(argv[2], wofstream::ios_base::out);
if (!oufile.is_open())
{
cerr << "[ ERROR ] failed to open the file of " << argv[2] << endl;
return -1;
}
for (size_t i = 0; i < newFileContains.size(); i++)
{
oufile << newFileContains[i] << endl;
}
oufile.close();
return 0;
}
使用方法
当然应该先编译上面的代码,做成可执行程序。
第二步,在CSDN写博客,写完之后点击下图中红色箭头指示的位置。
点击后,全选编辑框中的内容,拷贝到txt文件中,在命令行中执行编译好的可执行程序。将输出文件的内容覆盖掉自己刚才选中的内容。
再调整
有些地方可能会有问题,比如代码后面的行,手动调整下就好了。至于标题,也是要自己修改的。
【C++】处理CSDN博文源码的更多相关文章
- Dubbo 源码分析 - 集群容错之 LoadBalance
1.简介 LoadBalance 中文意思为负载均衡,它的职责是将网络请求,或者其他形式的负载"均摊"到不同的机器上.避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况.通 ...
- Mybatis源码解析优秀博文
最近阅读了许久的mybatis源码,小有所悟.同时也发现网上有许多优秀的mybatis源码讲解博文.本人打算把自己阅读过的.觉得不错的一些博文列出来.以此进一步加深对mybatis框架的理解.其实还有 ...
- [csdn markdown]使用摘记一源码高亮及图片上传和链接
本文主要内容是体验csdn markdown的代码块高亮显示和图片链接及上传. 图片上传 上边这是标题行.仅仅须要使用一个#就能够表示.几个表示是几级标题 图片上传 本地图片上传控件 本地图片上传方式 ...
- soundtouch源码分析__based on csdn :
1. soundtouch介绍和相关资源 The SoundTouch Library Copyright © Olli Parviainen 2001-2014 SoundTouch is an o ...
- Android源码博文集锦1
Android精选源码 功能齐全的实用Android视频播放器 实现滑动到底部,加载更多RecyclerViewDemo 使用Kotlin语言编写Android MVP案例KotlinMVPDemo ...
- Android精品源码与技术博文
Android精品源码android遵循Material Design风格天气源码基于exoplay 自定义播放器 支持直播 1 ExoUserPlayer 基本播放器...几种动画效果Animati ...
- 安卓巴士android源码、博文精选1
每周精选 第 53 期 精品源码 Android开源项目--CookMan 厨客APP 简介CookMan,厨客,是一款查询.搜索.分类.收藏菜谱功能的APP.|52数据来源Mob A ...
- Android源码博文集锦2
Android精选源码 android简单易用的Gallery android漂亮的加载效果 这可能是RxJava 2.x 最好的入门教程示例代码 android图片可拖拽排序 android用几行代 ...
- Android源码博文集锦4
Android精选源码 一款常见的自定义加载动画 android开源记账项目CoCoin Android自定义view:拖拽选择按钮 Android指纹识别 一个折线图,它提供了几个非常实用的功能 一 ...
随机推荐
- [LeetCode] Max Consecutive Ones II 最大连续1的个数之二
Given a binary array, find the maximum number of consecutive 1s in this array if you can flip at mos ...
- [USACO09FEB]改造路Revamping Trails
题目描述 Farmer John dutifully checks on the cows every day. He traverses some of the M (1 <= M <= ...
- ●洛谷P1083 借教室
题链: https://www.luogu.org/problemnew/show/P1083题解: 二分,差分 显然具有二分性: 如果只考虑1~p个人,就会在某一天无法满足, 那么显然只考虑1~[p ...
- P1837 单人纸牌_NOI导刊2011提高(04)
题目描述 单人纸牌游戏,共36张牌分成9叠,每叠4张牌面向上.每次,游戏者可以从某两个不同的牌堆最顶上取出两张牌面相同的牌(如黑桃10和梅花10)并且一起拿走.如果最后所有纸牌都被取走,则游戏者就赢了 ...
- ●BZOJ 3551 [ONTAK2010]Peaks(在线)
题链: http://www.lydsy.com/JudgeOnline/problem.php?id=3551 题解: 最小生成树 Kruskal,主席树,在线 这个做法挺巧妙的...以Kruska ...
- bzoj1010[HNOI2008]玩具装箱toy 斜率优化dp
1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 11893 Solved: 5061[Submit][S ...
- jQuery Datetable
先来个官网可以直接看官网 https://www.datatables.net/manual/data/ 安装 DataTables是一个功能强大的Javascript库,用于为HTML表格添加交互 ...
- SpringMVC中HandlerMapping的三种配置方式
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE beans PUBLIC "-/ ...
- quartz入门详解
http://www.cnblogs.com/monian/p/3822980.html http://www.blogjava.NET/baoyaer/articles/155645.html 另: ...
- selenium登录163邮箱
环境:windows8 python2.7+selenium+chrome 直接上脚本: # coding=utf-8from selenium import webdriverimport tim ...