我需要打印一個帶有數字的cvs文件。 打印文件時,我有帶點的數字,但我需要用逗號。C++如何在文件中用逗號(而不是點)打印一個雙精度的十進制數字
這裏是一個例子。 如果我使用語言環境方法在終端打印此號碼,我獲得一個逗號的數字,但在文件中我有相同的號碼,但點。我不懂爲什麼。 我該怎麼辦?
#include <iostream>
#include <locale>
#include <string> // std::string, std::to_string
#include <fstream>
using namespace std;
int main()
{
double x = 2.87;
std::setlocale(LC_NUMERIC, "de_DE");
std::cout.imbue(std::locale(""));
std::cout << x << std::endl;
ofstream outputfile ("out.csv");
if (outputfile.is_open())
{
outputfile <<to_string(x)<<"\n\n";
}
return 0;
}
在此先感謝。
灌輸物流對象,而不是cout。 –
@尼爾[似乎沒有幫助](http://coliru.stacked-crooked.com/a/2947e8488c8fb6a2)。 –
請注意,您需要爲'std :: setlocale'包含''。它可能在沒有頭文件的情況下工作,但不能保證(例如,如果沒有Visual C++,它不會編譯)。 –