C++ char 转换为string, 出现乱码解决方法

C++ char 转换为string, 出现乱码
想通过下面的方式将char 转换为string ,但是转换之后的string出现很多乱码 ,请问这是为什么呢?
#include<iostream>
using namespace std;

int main()
{
char ch = 'a';
string s(&ch);
cout << s << endl;
}


a烫烫禧5

PS:我用的是64位机器,编译器是VS  。同样的代码换成G++就没有乱码。

谢谢
------解决思路----------------------
string s(&ch,1);
这样就行了。
------解决思路----------------------
char ch = 'a';
string s(&ch);  乱用的结果

字符跟字符串是有区别的.   一般说的字符串都是有\0结尾的. 你强制把字符转换字符串, 系统就需要从那里开始找\0结束.
结果乱码就来了
------解决思路----------------------
引用:
Quote: 引用:

http://www.cplusplus.com/reference/string/string/string/index.html
C++ char 转换为string, 出现乱码解决方法

多谢解答,我改成string s(&ch,1);就可以了,但是为什么呢?string(&ch) 用VS不行,用g++就OK。

怎么用行,怎么用不行,决定于string的构造函数们是怎样写的。
VS IDE中,在不明白的符号上点鼠标右键,选转到定义。

------解决思路----------------------
字符串,需要\0,建议楼主多理解C++中的概念。