【发布时间】:2017-02-19 17:32:33
【问题描述】:
我需要打印一个带有数字的 csv 文件。 打印文件时,我有带点的数字,但我需要用逗号。
这里是一个例子。 如果我使用语言环境方法在终端中打印此数字,我会获得一个带逗号的数字,但在文件中我有相同的数字但带有点。我不理解为什么。 我该怎么办?
#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;
}
提前致谢。
【问题讨论】:
-
灌输 ofstream 对象,而不是 cout。
-
@Neil Doesn't seem to help.
-
请注意,
std::setlocale需要包含<clocale>。它可以在没有标头的情况下工作,但不能保证(例如,在 Visual C++ 中没有标头就无法编译)。 -
文件是csv,不是cvs
-
我更正了,谢谢
标签: c++ printing locale fstream cout