1. 程式人生 > 實用技巧 >部落格園圖片居中工具

部落格園圖片居中工具

把typora寫好的文章上傳到部落格園時,預設的圖片對齊方式總是左對齊,看起來總是很彆扭,嘗試用AHK手動替換但效率太低,於是下定決心寫個自動替換程式一勞永逸。

食用方法:

將下面的程式碼直接複製到cpp檔案中,找一個喜歡的位置新建一個空白的txt檔案。在infile內填入txt的路徑。(建議使用絕對路徑,方便後續打包直接使用)

然後將程式打包exe,每次使用將.md裡的內容複製到txt檔案裡,然後點選打包好的.exe即可自動替換所有的圖片至居中。

不會QT所以不會寫成拖入檔案直接替換的介面版,以後填這個坑。

#include <iostream>
#include <fstream>
#include <vector>
#include <cstring>
#include <windows.h>
using namespace  std;
const string str1 = "<center><img src = \"";
const string str2 = "\"></center>";
int main() {
    string infile = "YOUR FILE NAME PATH"; // YOUR FILE NAME PATH (.txt) !!!!!
    ifstream in(infile,ios_base::in);
    string line;
    vector<string> vec;
    ifstream in(infile,ios_base::in);
    string line;
    vector<string> vec;
    if(in)
    {
        while(getline(in, line))
        {
            if(line.find("![image-") != line.npos)
            {
                string str = "";
                int f = 0;
                int a1 = line.find('('), a2 = line.rfind(')');
                for(int i = a1 + 1; i < a2; i++)
                {
                    str += line[i];
                }
                str[f] = '\0';
                str[0] = 'h';    //轉換完後我的第一個字母會變成亂碼,原因不明,所以手動把第一個改成h
                vec.push_back(str1 + str + str2);
            }
            else
                vec.push_back(line);
        }
        ofstream out(infile);
        for(auto &v : vec)
        {
            out << v << endl;
        }
        MessageBox(NULL,TEXT("替換成功"),TEXT("提示"),MB_OK);
    }
    else
    {
        MessageBox(NULL,TEXT("沒找到該檔案"),TEXT("提示"),MB_OK);
    }
    return 0;
}

替換前:

替換後: