У меня проблемы с печатью в текстовый файл из выбранных мест в большом проекте с кодом C ++.
Использование C++
Я использую функцию X
, которая вызывается несколько раз.
Это вызывается из функции Y
Я хочу вывести результаты функции X
в один текстовый файл и делал это непрерывно, используя объявления, fopen, fprintf,fclose набор функций - это работает - хотя и очень медленно.
Однако я хочу печатать результаты в файл только при вызове X
из определенной области функции хоста Y
.
Я хочу сделать это, хотя он минимально инвазивен с текущим кодом (то есть я не хотел бы добавлять другой аргумент в функцию X
и не хотел бы объявлять глобальные переменные).
Являются ли они способом уникальных способов эффективно «сообщить» коду и дочерним функциям, когда начинать печать в файл, а когда останавливать.
(ps Я постобработал свои результаты с использованием VBA, однако этот обходной путьпризнано неэффективным).
Любые идеи или конструкции кода приветствуются!
swarm
Ниже представлена дочерняя функция X:
void `X`() {
FILE *f2 = NULL;
f2 = fopen("log.txt", "a");
// Calculate a result: `result`
fprintf(f2, "%.4e ", result);
fclose (f2);
}
Ниже приведена основная вызывающая функция Y:
void Y Y(){
for i=1:100{
X();
X();
X(); // <-- Wishing to print only this line to a text file
}
}