0

当我运行这个程序时,我得到下面提到的错误 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());

错误:由于 -Wfatal-errors 导致 '<<' 标记编译终止之前的预期构造函数、析构函数或类型转换。

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

4

3 回答 3

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 工作正常。

于 2012-10-21T00:55:27.303 回答
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());
}
于 2012-10-21T00:54:32.753 回答
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)

于 2012-10-21T00:54:50.227 回答