C/С++: printf использует запятые вместо точек в качестве десятичного разделителя

Вопрос:Мне нужно, чтобы моя программа показывала результат с использованием запятых в качестве разделителя в десятичной форме. По этой ссылке: вы можете использовать в Java что-то вроде этого: System.out.printf("Floating-point with commas: %,fn", 1234567.123); Есть ли флаг или что-то, что я могу использовать, чтобы иметь подобное поведение в C? Спасибо заранее! Лучший ответ: Если вы хотите,

Вопрос:

Мне нужно, чтобы моя программа показывала результат с использованием запятых в качестве разделителя в десятичной форме.

По этой ссылке: вы можете использовать в Java что-то вроде этого:

System.out.printf(«Floating-point with commas: %,fn», 1234567.123);

Есть ли флаг или что-то, что я могу использовать, чтобы иметь подобное поведение в C?

Спасибо заранее!

Лучший ответ:

Если вы хотите, вы можете установить текущую локаль в начале вашей программы:

#include <stdio.h> #include <locale.h> int main() { setlocale(LC_NUMERIC, «French_Canada.1252»); // «.OCP» if you want to use system settings printf(«%fn», 3.14543); return 0; } Ответ №1

В C нет аналогичной функциональности. Вы можете использовать sprintf для печати в массив char, а затем заменить точку запятой вручную. Я не могу придумать лучшего решения, извините.

EDIT: спасибо Мацу Патерссону:
Кажется, что установка языка может изменить этот символ. Пожалуйста, посмотрите ссылку, которую он опубликовал.

Оцените статью
Добавить комментарий