У меня есть следующий рабочий код, который производит форматированный вывод с использованием потока, однако я чувствую, что все спецификаторы повторного формата затрудняют чтение. Есть ли способ установить точность, ширину и выравнивание навсегда для данного потока, который бы хорошо очистил вещи?Как удалить избыточность в форматированном потоке
#include <fstream>
#include <iomanip>
ofstream myfile;
myfile.open(Output.c_str(), ios::trunc);
for (int i = 0; i < iLen; i++) {
myfile <<std::fixed << std::setw(iWidth) << std::setprecision(iDecimals)<< std::right << pDist[i] << " "
<<std::fixed << std::setw(iWidth) << std::setprecision(iDecimals)<< std::right << pRes[i] << " "
<<std::fixed << std::setw(iWidth) << std::setprecision(iDecimals)<< std::right << pPhase[i] << "\n";
}
myfile.close();
Вы пытались просто удалить повторяющиеся спецификации формата? Большинство спецификаторов формата сохраняются до тех пор, пока они не будут явно изменены повторно. –
'std :: fixed',' std :: setprecision' и 'std :: right' являются« постоянными ». Единственный, который вам нужен каждый раз, это 'setw'. –
@CalvinScherle является правильным. Я попытался удалить спецификаторы, как это было предложено Code-Apprentice, но это не сработало, потому что я удалял все из них. Благодаря переполнению стека! – marcp