我想在.plt
文件中输出一行,并用双引号标注"one-D Hydro"
,到目前为止我遇到了这个问题。
#include <cstdlib>
#include <fstream>
using namespace std;
int main()
{
fstream gnuplot_file;
gnuplot_file.open ("sod.plt");
gnuplot_file<<"set title"<< ""one-D Hydro""<<std::endl;
gnuplot_file.close();
system("gnuplot.exe sod.plt");
return 0;
}
第11行不允许它编译,因为我似乎无法关闭语句。顺便说一下,这个错误也是无用的。
gnuplot_call.cpp|11|error: expected ';' before 'one'|
答案 0 :(得分:3)
使用C ++ 03(甚至C)使用反斜杠来转义字符串文字中的双引号:
gnuplot_file << "set title" << "\"one-D Hydro\"" << std::endl;
请注意,gnuplot
可能还要求您转义某些字符,例如如果你想让标题包含引号!
使用C++11,您可以使用raw string literals,例如
gnuplot_file<< R"*(set title "one-D Hydro")*" << std::endl;
BTW,如果您的操作系统和C ++库提供它们,您可能会对popen(3)和pclose
感兴趣。您只需popen
gnuplot
进程并向其发送命令,最后pclose
即可。
答案 1 :(得分:2)
尝试在您尝试添加双引号的代码中包含转义字符[即反斜杠]。 例如:
"\"one-D Hydro\""
顺便说一下,为什么在为它定义名称空间后使用std::
,可以直接使用endl。