Я хочу вывести строку в .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'|
В 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;
Кстати, вы могли бы быть заинтересованы POPEN (3) а также pclose
, если ваша операционная система и библиотека C ++ предоставляют их. Вы бы просто popen
gnuplot
обрабатывать и отправлять ему команды, наконец pclose
это
Попробуйте включить escape-символ [т.е. косую черту] в код, где вы пытаетесь добавить двойные кавычки.
Например:
"\"one-D Hydro\""
кстати почему вы используете std::
как только вы определили пространство имен для него, вы можете напрямую использовать endl.