0

我想将一行输出到一个带有双引号的.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'|

4

2 回答 2

3

使用 C++03(甚至 C)使用反斜杠来转义字符串文字中的双引号:

    gnuplot_file << "set title" << "\"one-D Hydro\"" << std::endl;

请注意,这gnuplot可能还需要您转义某些字符,例如,如果您希望标题包含引号!

使用C++11,您可以使用原始字符串文字,例如

   gnuplot_file<< R"*(set title "one-D Hydro")*" << std::endl;

顺便说一句,如果您的操作系统和 C++ 库提供它们,您可能会对popen(3)和感兴趣。pclose您只需处理并向其发送命令,最后popen-ing它。gnuplotpclose

于 2013-05-21T18:16:26.970 回答
2

尝试在您尝试添加双引号的代码中包含转义字符 [即反斜杠]。例如:

"\"one-D Hydro\""

顺便说一句,你为什么要使用std::它,一旦你为它定义了命名空间,你就可以直接使用 endl。

于 2013-05-21T18:22:51.610 回答