我有一个 stl 地图容器,里面装满了成对的 vcl UnicodeString 对象。我正在尝试使用下面引用的代码将其转储到文件中,但我得到的不是我的字符串,而是一个充满十六进制地址的文件。
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <tchar.h>
#include <iostream>
#include <fstream>
#include <map>
//---------------------------------------------------------------------------
WINAPI _tWinMain(HINSTANCE, HINSTANCE, LPTSTR, int)
{
std::map<UnicodeString, UnicodeString> fm;
fm[U"a"]=U"test";
fm[U"b"]=U"test2";
fm[U"c"]=U"test3";
fm[U"z"]=U"last one";
ofstream out("c:\\temp\\fm.txt");
std::map<UnicodeString, UnicodeString>::const_iterator itr;
for (itr = fm.begin(); itr != fm.end(); ++itr) {
out << itr->first.c_str()<< ",\t\t"<< itr->second.c_str()<<std::endl;
}
out.close();
return 0;
}
产生这个:
1f3b624, 1f5137c
1f3b654, 1f513bc
1f3b66c, 1f513fc
1f3b684, 1f258dc
我尝试了各种转换 c 字符串的方法,但似乎没有任何效果。