J'ai besoin d'imprimer un fichier cvs avec des nombres. Lorsque le fichier est imprimé, j'ai des nombres avec des points, mais j'en ai besoin avec des virgules.C++ Comment imprimer dans un fichier un nombre double décimal avec virgule (au lieu de point)
Voici un exemple. Si j'imprime ce numéro dans le terminal en utilisant la méthode locale, j'obtiens un nombre avec virgule, mais dans le fichier j'ai le même numéro mais avec le point. Je ne comprends pas pourquoi. Comment pourrais-je faire?
#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;
}
Merci d'avance.
imbrique l'objet ofstream, pas cout. –
@Neil [Ne semble pas aider] (http://coliru.stacked-crooked.com/a/2947e8488c8fb6a2). –
Notez que vous devez inclure '' pour 'std :: setlocale'. Cela peut fonctionner sans l'en-tête, mais il n'y a aucune garantie (par exemple, il ne compile pas sans cela dans Visual C++). –