所以我正在将.txt文件中的数据检索到myclass(类),包括
public:
vector<int> ID
vector<string> name
vector<string> add
但是当我尝试访问它们以在MFC dlg的编辑框中显示它们时,它只是将此返回到框中:
ID: 1
Name: (jibberish)
address: (jiberish)
ID: 2
Name: (jibberish)
address: (jiberish)
etc...
for循环中编辑控件框中使用的代码
int s1;
CString s2, s3;
s1.Format(_T("\r\nID: %d"),myclass.ID[i]);
s2.Format(_T("\r\nName: %s"),myclass.name[i]);
s3.Format(_T("\r\nAddress: %s"),myclass.add[i]);
Edi_box += s1 + s2 + s3;
所以它读取整数向量但不读取字符串向量
答案 0 :(得分:1)
您不能(或至少不应)使用std::string
格式化%s
。试试这个:
s2.Format( _T("\r\nName: %s"), myclass.name[i].c_str() );
并继续执行其他std::string
变量。
答案 1 :(得分:1)
_T
宏将创建wchar_t字符串或char字符串,具体取决于VS项目的charset设置。为了将std::string
(基于字符的)格式化为其中之一,您必须使用正确的转换。 Microsoft发布了对#&#34; normal&#34; printf()
- 许多函数支持的样式语法:使用%ls
为char字符串插入wchar_t字符串和%hs
。
注意: