2017年5月30日 星期二

[圖文] 台灣|微信支付|超商儲值|幫幫寶教程

[圖文] 台灣|微信支付|超商儲值|幫幫寶教程


官方網站:https://www.paybao.com.tw/
今年改版多次,流程也稍微變得複雜了一些些。
要完成實名驗證(綁定台灣信用卡),才能夠正常使用微信,沒有實名可能會無法支付。
微信支付實名驗證參考這篇:[圖文] 微信支付|只綁台灣信用\金融卡|不用別人給紅包
綁定之後可以有哪些權限(如我可以到大陸消費使用嗎?):
微信支付只綁定台灣信用卡,使用權限與金額上限

流程圖

先申請好幫幫寶與微信的帳戶
官方網站:https://www.paybao.com.tw/
  1. 註冊銀行帳戶
  2. 申請訂單(最小單是100人民幣)
    2.1. 加入幫幫寶指定帳戶好友
    2.2. 密一下說你儲值多少(可以簡單數字就好)
  3. 完成訂單付款
  4. 開心的使用微信

註冊銀行帳戶

第一次註冊完幫幫寶帳戶之後記得要綁定一個銀行帳戶,只有綁定的銀行帳戶可以匯款;匯款金額錯誤或是沒有註冊,依據幫幫寶官方的說法是會自動退回,不過要是真的出問題建議密一下客服個別處理比較安心。
再來就依據裡面所填的做即可

申請訂單

進入右上角會員專區
點擊微信錢包
2018改版後,上圖下一步後會出現兩個選項,點擊下方 已經實名
然後出現一個QR用你的微信掃一掃,之後就會出現下圖訂單頁面了
訂單成立後滾到下面有付款資訊,其中有支持超商儲值、銀行匯款等,選擇自己方便的的方付款。
*實名的微信帳戶到這裡付款完畢之後,等個5~10分鐘,系統會自動匯款,微信上會自己跳出收到款項了。




以下是選擇非實名用戶的流程,實名用戶到此就可以收到紅包了
以下是選擇非實名用戶的流程,實名用戶到此就可以收到紅包了
以下是選擇非實名用戶的流程,實名用戶到此就可以收到紅包了
提醒非實名用戶錢存進去就不能用也拿不出來


如果選擇非實名的微信帳戶

非實名的微信帳戶這裡會出現一行紅字要你去加一個帳號好友並且密語儲值多少
這裡的幫幫寶帳戶不是每個人都相同,不要照著圖填寫,你應該依據自己的網頁出現的填寫。

加入幫幫寶指定帳戶好友

開啟你的微信主頁右上角有一個 + 點一下添加朋友
然後搜尋帳戶,添加好友
密一下儲值多少 (我是事後截圖的)
可以直接說數字就好了,不用打什麼字
這裡因為我是先密了,之後隔一段時間才付款的
實際上轉帳付款後到收到人民幣沒超過5分鐘

完成訂單付款

完成之後過一陣子就會收到一個紅包

千萬注意紅包只有一天能收,不要忘記收了!!!
客服也表示不要漏收了

開心的使用微信

再來就可以正常掃馬支付了~
需要測的的話這邊提供一個連結測試,可以輸入最小額度測試
覺得文章對你有幫助的話也歡迎打賞,對我的鼓勵~
#測試連結金額自定可以選最小額測試只能用微信掃)
如何使用微信錢包儲值邏輯思維的得到APP可以參考這篇
台灣 如何儲值、購買得到APP 專欄、電子商品、書

安卓 Android 6.0 7.0 清除所有程式的快取

安卓 Android 6.0 7.0 清除所有程式的快取


可以直接跳下面圖開始看
如果是空間莫名其妙消失可能是備份導致的詳細可以查看這篇
https://charlottehong.blogspot.tw/2016/11/sony-z5-z5p.html

前言

從 Android 6.0 開始,CCleaner, ESF File, 金山豹 等清理程序沒辦法幫我們清理,應用程序的快取,只能手動一個一個清理,沒辦法一次清理全部。
不過其實清理全部這個功能一直都內建在系統內,早期版本的也可以;系統就有內建,可以一次清理所有應用程式快取的功能了。
有人說快取不應該被清理那反而會拖慢系統速度,這邊大概解釋一下什麼是快取。快取另一個名稱是緩存,包括電腦也是所有能看到的圖片、影片都是先下載才播放的,先下載就需要一個空間儲存,這個就是快取。
故這些東西如果清除了,是要重新下載的,比如說FaceBook的LOGO圖案之類的,網站的背景之類的,如果你經常瀏覽,那麼不清除的話就直使用即可。
故才有清除反而會變慢這一說
而實際上一個理想的應用的程序,應該具備
  • 依日期清理快取
  • 依容量清理快取
  • 依使用頻率清理快取
仔細觀察其實也可以發現大多數的程序都有具備這樣的功能,比如說FaceBook你把它清理掉之後很快沒幾天就又變成 100M 了,然後重點是他長到100M之後就差不多100M了,不會再長了。
大多數的程序都會自動清理的,只有少數會越長越大
這種情況下,其實是不需要清理的,不過我們還是不能避免某些程序沒寫好,或者是某些程序打從你第一天開過之後就沒怎麼在開了,這種情況。
最理想的狀態應該是,隔好一段時間才清理,可能是一個月,可能是半年,總而言之
頻繁的清理快取肯定只有壞處
不過這一說也有一個例外,當手機不怎麼好的時候!可能是容量不足,記憶體不足,或是本身處理效能很差之類的。
我自己來說我的舊手機Z1,其實就有這樣的感覺,用了一陣子卡卡鈍鈍的,清理完快取之後居然就重生了的感覺,變順許多。詳細理由我也不清楚,不過總而言之手機效能不足的情況下,清除快取是可以提升一些順暢度的。
Z1 效能可能還不算太差,不過由於我裝了不少應用程序,這應該是卡頓的主因。也可能是清理快取有效變快的原因。


一次清除所有快取

作法如下,先到設定→儲存空間
點選內部共用儲存空間
滾到最下面,點一下快取資料
就可以清除了

2017年5月28日 星期日

C++ ios::app 與 ios::ate 打開方式有什麼不同

C++ ios::app 與 ios::ate 打開方式有什麼不同

用一句話形容:
兩個都把檔案指針移動到結尾,差別在於能否有權限修改、讀取原本的檔案
  • 檔案指針就像開啟記事本或聊天室窗打字時的 | 的意思。
假設有一個記事本 f.txt 內容是
ABCED

ios::ate

at end 開啟檔案並將檔案指針移動到結尾,稍後你還可以移動指針到前方修改或讀取。
fstream f("f.txt", ios::in|ios::out|ios::ate);
cout << f.tellg() << endl;
獲得目前指針位置在5
更動指針位置到起點開始算第0個位置
f.seekg(0, f.beg);

ios::app

append 原意為加上的意思,意味著沒有權限更動原本的存在物。
開啟檔案並將檔案指針移動到結尾,稍後並沒有權限可以讀取或修改前方。
fstream f("f.txt", ios::in|ios::out|ios::app);
cout << f.tellg() << endl;
回傳指針位置 0 把結尾直接當作起點了。

小提示

開檔的時候上面的 ios::in|ios::out 不可以省略,必須詳細指明要寫、要讀還是都要。
不可以像這樣寫
fstream f("f.txt", ios::app);
沒有表明到底是要怎麼樣。

2017年5月26日 星期五

CodeBlocks 掛載 MinGW 更新最新版本編譯器

CodeBlocks 掛載 MinGW 更新最新版本編譯器




安裝 CodeBlocks 之後並不能馬上使用需要一些修改,如何與編譯器連結。
最新版本的 gcc 可以從這裡下載
下載完之後安裝在C曹預設位置即可。


掛載編譯器

除非你是裝舊版的MinGW,不然如果都安裝好了什麼都不做直接運行會跳出這樣的錯誤。
The compiler's setup (GNU GCC Compiler) is invalid, so Code::Blocks cannot find/run the compiler.
Probably the toolchain path within the compiler options is not setup correctly?! (Do you have a compiler installed?)
Goto "Settings->Compiler...->Global compiler settings->GNU GCC Compiler->Toolchain executables" and fix the compiler's setup.
Skipping...
Nothing to be done (all items are up-to-date).
先開啟設定
改一下位置,找到你的bin資料夾
把下面三個修改成這樣
不過其實就是按照 bin 裡面的檔名修改,如果之後改版有改檔名來這裡找
再來還有一個地方要修改
找到這個檔案
再來就可以按F9編譯了

C and C++ 字串(string) 轉 數字,數字 轉 字串(string) 綜合整理

C and C++ 字串(string) 轉 數字,數字 轉 字串(string) 綜合整理

綜合了一下常見的方法,可以把
整數(int)、浮點數(float)、長整數(long long)
字串(char*)(string) 互轉
/*****************************************************************
Name : C and C++ 字串轉整數,整數轉字串 綜合整理
Date : 2017/05/26
By   : CharlotteHonG
Final: 2017/05/26
*****************************************************************/
#include <iostream>
#include <sstream>
#include <cstring>
#include <string>
using namespace std;

constexpr unsigned long long num = 3141592653589793238;
constexpr int num2 = 314159265;
const char* str = "3141592653589793238";
const char* str2 = "314159265";

void to_str1(){
    char str[20];
    strcpy(str, to_string(num).c_str());
    cout << "to_str1 = " << str << endl;
}
void to_str2(){
    char str[20];
    itoa(num2, str, 10);
    cout << "to_str2 = " << str << endl;
}
void  to_str3() {
    char str[20];
    sprintf(str,"%d",num2);
    cout << "to_str3 = " << str << endl;
}
void to_num1(){
    unsigned long long num = stoull(str);
    cout << "to_num1 = " << num << endl;
}
void to_num2(){
    stringstream ss(str);
    unsigned long long num;
    ss >> num;
    cout << "to_num2 = " << num << endl;
}
void to_num3(){
    unsigned long long num = strtoull(str, NULL, 10);
    cout << "to_num3 = " << num << endl;
}
void to_num4(){
    long long num = atoll(str);
    cout << "to_num4 = " << num << endl;
}
void to_num5() {
    unsigned int num;
    sscanf(str2,"%d",&num);
    cout << "to_num5 = " << num << endl;
}

int main() {
    to_str1();
    to_str2();
    to_str3();
    to_num1();
    to_num2();
    to_num3();
    to_num4();
    to_num5();
    return 0;
}

static function or static member 用途整合整理

static function or static member 用途整合整理

非類別

static variable

有兩種用途,一種是在 function() 內的靜態變數,一種是全域的靜態變數

全域內的靜態變數

可以有效的隔絕變數被其他檔案使用,如果你有多份檔案
  • a.cpp
  • b.cpp
那麼被設置為 static 的全域變數只有那一份檔案可以使用,如果沒有設置為 static 那麼其他檔案可以透過 extend 來使用、取得。

函式內的靜態變數

該函式的生命週期會延遲到整個程式結束
函式內的變數在函式呼叫結束的時候會清除所有變數,妳果你希望某個函式可以計數,總共被呼叫幾次,可以宣告一個靜態變數,每次都加1。
void fun(){
    static itn i;
    ++i;
}

靜態的函式

保護函式不會被其他cpp檔案存取
與全域變數差不多,禁止其他檔案存取這個函式
static void fun(){;
}
如此一來只有該份 .cpp 檔案可以存取使用這個函式

類別

類別內的靜態變數成員

不管宣告幾個物件,他還是同一個,可以連結所有物件
簡單來說創建了兩個物件 a 與 b ,現在由 a 把他設定為 10 , b 也可以看到是 10。
一樣可用在計數總共被創建幾次。
設定方式比較特別宣告後只能在類別外初始化
class OBJ{
    static int c;
};

int OBJ::c = 0;

類別內的靜態函式成員

這個更特別一些,可以把他解釋為
只為特定class工作,並且有特權的普通函式。
特權指的是可以存取私有成員,普通函式指的是沒有帶 this 指針。
可能會好奇沒有this指針怎麼存取,這就像 friend 函式一樣,你把物件指針導入就好了。
如果你想弄一個可以產生特定有效數據的類別,比如說 RGB
enmu RGB{R, G, B};
你想藉此避免使用者輸入無效數據
void fun(RGB img){

}
這麼一來就安全了,不過其實還有一種問題
某個人忘記初始化他..
RGB img;
手動建一個安全的函式群
class RGB{
public:
    static RGB R(){return RGB(0);}
    static RGB G(){return RGB(1);}
    static RGB B(){return RGB(2);}
private:
    RGB(int num): rgb(num){}
    unsigned rgb;
};
void fun(RGB img){}
好了,現在再也沒有人有能力建造出除了 0, 1, 2 以外的 RGB 了,因為RGB的建構子是私有的。現在只有 static 有特權可以存取私有的建構子。
fun(RGB::R());
你現在可以大坦的不檢查輸入的有效性了,因為他絕對安全又有效。


C 語言仿類別

根據以上的特性不知道你有沒有發現到,這就好像一個物件!
是的在C語言裡面把一份 .c 檔案視為一個物件,替變數或函式加上 static 就好像替他們宣告為 private 一樣。
雖然活運性沒有真實物件那麼好用,不過至少可以把變數與函式切的乾乾淨淨的,一塊一塊的,閱讀性與安全提升很多。
安全指的是多人合作時某人用你的函式,而妳不知道,事後你稍微調整個函式造成程式錯誤,你會很難找出來;以及某人 extend 你的變數,也是會發生一樣的事情。(雖然本來應該良好的溝通避免這種事情,不過從根本禁止還是方便有效些)。
不過別人跑來改掉妳的static就~XDD