请教怎么将c++的string类型变量中的内容输出到控制台中,同时也能从控制台中输入

请问如何将c++的string类型变量中的内容输出到控制台中,同时也能从控制台中输入?
我尝试过下面的代码,但是不行:
C/C++ code

void main()
{
    string a;
    a="apple";
    cout<<a<<endl;    //错误提示说<<无法匹配该操作
}

请问有什么简单的方法能满足我的要求?急求大侠来帮忙!

------解决方案--------------------
string是std的吗?

a.c_str();可能有类似的方法
------解决方案--------------------
貌似我这里没有报错...
------解决方案--------------------
我只认识一个错误就是不是void main,标准里只有int main,会不会和这个有关系?
http://tieba.baidu.com/p/40625459
------解决方案--------------------
直接复制你的然后g++,只有void main被报错...
探讨

引用:
貌似我这里没有报错...

难道你用的是cout函数吗

------解决方案--------------------
本来a就会自动转换的

但是cout接受的是泛型可能编译器就没办法了。


加个强制转换
cout<<(TCHAR *)a<<endl;
------解决方案--------------------
探讨

引用:
直接复制你的然后g++,只有void main被报错...

引用:

引用:
貌似我这里没有报错...

难道你用的是cout函数吗

当然还有个头文件
#include<iostream>
using namespace std;
我用的是……

------解决方案--------------------
char *p=new char(256);
cin>>p;


好吧,这样用是错的。
------解决方案--------------------
cin 为什么不行,代码发出来看下
------解决方案--------------------
楼主啊,换本合格的教材吧,珍惜生命啊。
------解决方案--------------------
std::cin std::cout 的 << >> 操作符不支持直接string操作
------解决方案--------------------
vc吧?#include <string>

C/C++ code
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string s;
    cin >>s;
    cout <<s <<endl;

    return 0;
}

------解决方案--------------------
再说一遍,vc下要加#include <string>
------解决方案--------------------
探讨

vc吧?#include <string>

C/C++ code
#include <iostream>
#include <string>
using namespace std;

int main()
{
string s;
cin >>s;
cout <<s <<endl;

return 0;
}

------解决方案--------------------
具体不清楚 只知道<string>里好像是是一个string类的定义......
等其他大大解答
------解决方案--------------------
探讨

引用:
具体不清楚 只知道<string>里好像是是一个string类的定义......
等其他大大解答

我记得里面只有一些strcpy 和strcmp之类的函数

------解决方案--------------------
貌似是因为string类里面重载了包括"<<"在内的运算符

[code=C/C++][/code]
//重载运算符"<<"
ostream& operator<<(ostream &output, const String &other)
{
output<<other.m_data;

cout<<"重载了运算符<<"<<endl;

return output;
}