EasyX是一个优秀的C语言图形库,今天我用它来可视化八皇后问题的解。 我用saveimage()保存图片时,想将每张图片以其对应的解的数组命名,比如下面这张就是15863724.bmp。
为此我用使用了string
对象saveimage((path+fname+".bmp").c_str())
,然后提示c_str()
前必须跟对象或结构(真想念python),于是成了
1 | fname=path+fname+".bmp"; |
然后编译器表示saveimage()
只能接受LPCTSTR
类型。加上_T()
发现_T(
只是在对象前加L,比如_T("abc")
等价于L"abc"
,是wchar_t
的字符串。而LPCTSTR
相当于const wchar_t*
的typedef。 所以我需要把char*
字符串转换成wchar_t*
字符串。 各种百度,A2W之类的都没用。最后狠心把程序中所有对象换为宽字符型,string
->wstring
,cout
->wcout
等等,问题才算解决。 以前吐槽过python中字符编码问题,看来在C++中更严重……下次试试pillow吧。