当我运行此程序时,我在行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,这是有错误的在线代码。
答案 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)
)