以前,用Qt,现在用VS2015,在输出提示信息的时候,不是cout,就是printf,那个都没有用qt的时候QString().arg()…来的方便,又懒得百度c++有没有相似的用法,就自己写一个凑合着用吧!
#pragma once
#ifndef ERRORMSG_H
#define ERRORMSG_H
#include <iostream>
#include <string>
#include <map>
#include <list>
#include <vector>
#include <queue>
#include <iterator>
using namespace std;
class MString
{
public:
MString() = default;
MString(const char*);
MString Marg(const int);
MString Marg(const char *);
MString Marg(const char);
void Work(const string &str);
string c_string();
int all;
int times;
vector<string> s_list;
private:
string out;
};
void Error(MString);
void Error(string, int);
#endif // !ERRORMSG_H
.c
#include "stdafx.h"
#include "ErrorMsg.h"
void Error(MString str)
{
cout << ">>>>Error: " << str.c_string() << endl;
}
void Error(string str, int num)
{
cout << ">>>>Error: " << str << "[" << "]" << endl;
}
MString::MString(const char* chArr)
{
string str = chArr;
string buf = "";
times = 0;
all = 0;
for (int i = 0; i < str.size(); ++i)
{
if (str[i] == '%')
{
times = atoi(&str[i + 1]);
i++;
if (buf.empty())
{
s_list.push_back(string());
}
else
{
s_list.push_back(buf);
buf.clear();
}
continue;
}
buf.push_back(str[i]);
if (i == str.size() - 1)
{
s_list.push_back(buf);
buf.clear();
}
}
}
void MString::Work(const string &str)
{
all++;
out += s_list[all - 1] + str;
if (all == times)
{
if (all<s_list.size())
{
out += s_list.back();
s_list.clear();
}
}
}
string MString::c_string()
{
return out;
}
MString MString::Marg(const int num)
{
string str = to_string(num);
Work(str);
return *this;
}
MString MString::Marg(const char * chPtr)
{
string str = chPtr;
Work(str);
return *this;
}
MString MString::Marg(const char ch)
{
string str ;
str.push_back(ch);
Work(str);
return *this;
}
创建一个表格
取经团队:
参与者 | 类型 |
---|---|
大唐妖僧 | 人类 |
齐天大圣 | 石猴 |
天蓬元帅 | 野猪 |
卷帘大将 | 人类 |
龙太子 | 爬虫 |
任务目标
-
最终任务
- 取得真经 子任务
- 金蝉遭贬
- 出胎几杀
- 满月抛江
- 寻亲报冤
- 出城逢虎
- 落坑折从
- 双叉岭上
- 两界山头
- 陡涧换马第九难,(遇小白龙)
- 夜被火烧第十难,
- 失却袈裟十一难,(黑风山熊罴怪,还有狼精蛇精属于小boss)
- 收降八戒十二难,(遇上猪八戒)
- 黄风怪阻十三难,(黄风怪)
- 请求灵吉十四难,
- 流沙难渡十五难,(遇沙僧)
- 收得沙僧十六难,
- 四圣显化十七难,
- 五庄观中十八难,
- 难活人参十九难,(镇元子是仙不算妖怪)
- 贬退心猿二十难,(白骨精)
- 黑松林失散二十一难,
- 宝象国捎书二十二难,
- 金銮殿变虎二十三难,(宝象国遇黄袍怪)
- 平顶山逢魔二十四难,(金银角大王)
- 莲花洞高悬二十五难,(金银角的干妈九尾狐)
- 乌鸡国救主二十六难,(狮猁怪)
- 被魔化身二十七难,
- 号山逢怪二十八难,(遇红孩儿)
- 风摄圣僧二十九难,
- 心猿遭害三十难,
- 请圣降妖三十一难,
- 黑河沉没三十二难,(黑水河遇鼍龙)
- 搬运车迟三十三难,(车迟国斗法)
- 大赌输赢三十四难,
- 祛道兴僧三十五难,
- 路逢大水三十六难,(通天河遇鲤鱼精)
- 身落天河三十七难,
- 鱼篮现身三十八难,
- 金兜山遇怪三十九难,(遇青牛怪)
- 普天神难伏四十难,
- 问佛根源四十一难,
- 吃水遭毒四十二难,(悟空打水遇如意真仙)
- 西梁国留婚四十三难,(女儿国王留婚,这不是妖怪)
- 琵琶洞受苦四十四难,(琵琶洞遇蝎子精)
- 再贬心猿四十五难,(遇假孙悟空六耳猕猴)
- 难辨猕猴四十六难,
- 路阻火焰山四十七难,(遇铁扇公主、牛魔王、玉面狐狸一家)
- 求取芭蕉扇四十八难,
- 收缚魔王四十九难,
- 赛城扫塔五十难,(万圣龙王、九头虫)
- 取宝救僧五十一难,
- 棘林吟咏五十二难,
- 小雷音遇难五十三难,(遇黄眉大王)
- 诸天神遭困五十四难,
- 稀柿疼秽阻五十五难,(遇蟒蛇精)
- 朱紫国行医五十六难,
- 拯救疲癃五十七难,
- 降妖取后五十八难,(遇赛太岁金毛犼)
- 七情迷没五十九难,(遇七蜘蛛精)
- 多目遭伤六十难,(遇多目怪)
- 路阻狮驼六十一难,(遇狮驼岭三怪:青狮白象大鹏)
- 怪分三色六十二难,
- 城里遇灾六十三难,
- 请佛收魔六十四难,
- 比丘救子六十五难,(小子国遇鹿精)
- 辨认真邪六十六难,
- 松林救怪六十七难,(遇地涌夫人白鼠精)
- 僧房卧病六十八难,
- 无底洞遭困六十九难,
- 灭法国难行七十难,(灭法国王不是妖怪)
- 隐雾山遇魔七十一难,(遇豹子精)
- 凤仙郡求雨七十二难,
- 失落兵器七十三难,(遇黄狮精)
- 会庆钉钯七十四难,
- 竹节山遭难七十五难,(遇九灵元圣九头狮子精)
- 玄英洞受苦七十六难,(避暑避寒避尘三犀牛怪)
- 赶捉犀牛七十七难,
- 天竺招婚七十八难,(玉兔精)
- 铜台府监禁七十九难,
- 凌云渡脱胎八十难,
- 通天河遇鼋湿经书