这个C ++程序中的错误

时间:2012-10-21 00:45:44

标签: c++

当我运行此程序时,我在行s<<"\""<<string<<"\""中得到以下提到的错误:

#include <string>
#include <iostream>
#include <sstream>
#include <cstdlib>

using namespace std;
string str="abc";
stringstream s;
s<<"\""<<string<<"\"";
cout<<(s.str().c_str());

错误:在'&lt;&lt;'之前的预期构造函数,析构函数或类型转换代币 由于-Wfatal-errors而导致编译终止。

http://codepad.org/KuyMQg3x,这是有错误的在线代码。

3 个答案:

答案 0 :(得分:2)

#include <string>
#include <iostream>
#include <sstream>


int main() {
    using namespace std;
    string str="abc";
    stringstream s;
    s<<"\""<<str<<"\"";
    std::cout<<(s.str().c_str());

}

根据评论中的建议将字符串更改为str工作正常。

答案 1 :(得分:0)

您尝试在顶级而不是在函数内部执行代码。这就是你的程序应该是这样的:

#include <string>
#include <iostream>
#include <sstream>
#include <cstdlib>

using namespace std;

int main() {
    string str="abc";
    stringstream s;
    s<<"\""<<str<<"\"";
    cout<<(s.str().c_str());
}

答案 2 :(得分:0)

您似乎错过了主要功能。试试这个:

#include <string>
#include <iostream>
#include <sstream>
#include <cstdlib>

using namespace std;

int main() {
    string str="abc";
    stringstream s;
    s<<"\""<<str<<"\"";
    cout<<(s.str().c_str());
}

C++运行时需要运行一个函数才能启动程序,它将始终运行int main()(或int main(int argc, char* argv)