这个问题非常明显地完全没有"完全重复"标记的问题,该帖子没有解决我的目标。
如果我有:
double yuge = 1e16;
我尝试将其添加到这样的字符串中:
std::string boogers = std::to_string (yuge) + ".csv";
我得到的文件名为100000000000000000.csv。
我想要一个很好的紧凑版本,如1e16.csv。
正如您所看到的,我想将它用作文件名,因此输出方法没有帮助。 HALP!感谢。
答案 0 :(得分:0)
您可以使用std::stringstream
来构建字符串,而不是+
运算符。
#include <iostream>
#include <sstream>
#include <iomanip>
#include <algorithm>
int main()
{
double youge = 1e16;
std::stringstream ss;
ss<<youge<<".csv";
std::string filename = ss.str(); // filename = 1e+16.csv
filename.erase(std::remove(filename.begin(), filename.end(), '+'), filename.end());// removing the '+' sign
std::cout<<filename; // 1e16.csv
}