Количество цифр для int для использования в имени файла в C++
Мне нужно использовать некоторые целочисленные значения как часть имен файлов, которые я создаю как выходные данные в программе на C++. Для этого я использую код выше. Дело в том, что мои значения int (названные в коде n_irrad), например, меняются от 1 до 20000, поэтому мне нужно, чтобы имена файлов были MC_Interface00001.txt, MC_Interface00002.txt, ..., MC_Interface20000.txt. Итак, как я могу установить количество цифр в имени файла? С кодом, который я использую, я, очевидно, получаю MC_Interface1.txt, MC_Interface2.txt, ..., MC_Interface20000.txt.
Заранее спасибо.
ofstream MC_Interface;
string Irrad = static_cast<ostringstream*>( &(ostringstream() << n_irrad) )->str();
string MC_Interface_FileName = "MC_Interface" + Irrad + ".txt";
MC_Interface.open(MC_Interface_FileName.c_str());
2 ответа
Попробуйте следующее
#include <iostream>
#include <iomanip>
#include <sstream>
int main()
{
std::ostringstream os;
os << std::setw( 5 ) << std::setfill( '0' ) << 10;
std::string s = "MC_Interface" + os.str();
std::cout << s << std::endl;
return 0;
}
Выход
MC_Interface00010
ofstream MC_Interface;
std::stringstream ss("MC_Interface");
ss << std::setw(5) << std::setfill('0') << n_irrad;
ss << ".txt";
MC_Interface.open(ss.str());