Вывод символьного литерала {в поток C ++

0

Я пытаюсь записать часть файла C++ для вывода текста в файл, который будет читать gnuPlot. Я хочу включать символы {и} в свой выходной файл, так что gnuplot может читать их в стиле, подобном используемому laTex.

Соответствующий раздел моего кода читает

std::ofstream gnuplotFile2;
gnuplotFile2.open("FourierImages.gpi");
gnuplotFile2 << "set xlabel \"Wavenumber (m^" << '\\\u007B' << "-1" << '\} << "\"\n";

Здесь я использовал и \u007B и}, чтобы попытаться вывести {или}. Я также попытался включить только "... (m ^ {-1})\n"; и "... (m ^\{-1 \}\m" ;.

Мой выходной файл всегда читает

set xlabel "Wavenumber (m^-1)"

который создает график/диаграмму с меткой, имеющей символ в надстроке, но 1 как обычный скрипт.

Как я могу вывести символы {и} в файл? я бы хотел

set xlabel "Wavenumber (m^{-1})"
  • 2
    plotfile << "set xlabel \"Wavenumber (m^{-1})\"\n" ; должно сработать. Брекеты не особенные.
  • 0
    '\\\u007B' Это не 1 символ, поэтому вы должны использовать двойные кавычки: "\\\u007B"
Показать ещё 5 комментариев
Теги:
ofstream

1 ответ

1
Лучший ответ

Если я что-то не хватает, просто используйте символы { и }, как это

$ cat test.cc
#include <iostream>
#include <fstream>

int main() {
  std::ofstream gnuplotFile2;
  gnuplotFile2.open("FourierImages.gpi");
  gnuplotFile2 << "set xlabel \"Wavenumber (m^{" << "-1" << "})\"\n";
}

$ g++ test.cc && ./a.out && cat FourierImages.gpi
set xlabel "Wavenumber (m^{-1})"

Ещё вопросы

Сообщество Overcoder
Наверх
Меню