Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.05.2017, 17:04   #31
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Ну вот, там видно, что после точки 0.012 он так и должен выводить .012
Да он так и выводит если setlocale(LC_ALL,"rus"); убрать!!
Он работает если нет setlocale(LC_ALL,"rus");
А в том источнике http://en.cppreference.com/w/cpp/string/byte/atof
про setlocale(LC_ALL,"rus"); не сказано ни слова.
Изображения
Тип файла: jpg кадр_7.jpg (18.7 Кб, 139 просмотров)
KAMLS вне форума Ответить с цитированием
Старый 08.05.2017, 17:21   #32
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Как локаль обратно сделать английской? Я когда начал изучать С++ по Лафоре, вообще не знал что такое локаль, это в этой книге не преподается. И все примеры с русскими буквами были с иероглифами. Потом нашел в интернете как включать русскую локаль. Но чудо! Я не могу найти как включать английскую!!
Помогите пожалуйста! Дайте код включения английской локали!
KAMLS вне форума Ответить с цитированием
Старый 08.05.2017, 17:43   #33
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как это ни слова? Я ж даже красным выделил. http://www.programmersforum.ru/showt...=3#post1679446

Так вводите 0,12 и будет работать.
Цитата:
Сообщение от KAMLS Посмотреть сообщение
Я не могу найти как включать английскую
Наверно en или en-US.
https://msdn.microsoft.com/en-us/library/x99tb11d.aspx

rus кстати скорее всего неправильное имя локали и наверно оно просто ставит ту, что у вас в настройках ОС стоит, как и setlocale( LC_ALL, "" )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.05.2017, 19:00   #34
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Чтобы найти решение этой проблемы, мне, не изучившему язык полностью, потребуется очень много времени, которое я могу потратить на это самое изучение языка.
У меня просто нет знаний даже что искать.
Многие примеры той книги по которой я учусь таковы, и с ошибками и с опечатками. Идеальных книг нет, а метаться от одной к другой, вообще не дело.
Я не прошу написать код за меня, мне так не интересно.
Данная проблема (как локаль влияет на результат atof) мне не понятна.
Здесь не нужно писать за меня код.
Английского языка я пока не знаю.
Я просто просил помочь понять как локаль влияет на работу atof. Не писать за меня код.
Если кто-либо не знает, прошу так и сказать (не является детской подначкой(мол сам не знаешь, а если знаешь то покажи)).
Просто просил помочь понять как локаль влияет на atof.
KAMLS вне форума Ответить с цитированием
Старый 08.05.2017, 19:19   #35
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Дык за последние 2 страницы 10 раз сказали и почему, и что можно сделать.

atof символ десятичного разделителя берет из локали.

Цитата:
Сообщение от KAMLS Посмотреть сообщение
изучившему язык полностью
таких не бывает, это ж С++ )
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 08.05.2017, 21:13   #36
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Данная проблема (как локаль влияет на результат atof) мне не понятна.
В России десятичным разделителем является запятая, а не точка.
Вы установили на всё русскую локаль.
Соответственно 333.44 - это два целых числа,
разделенные точкой, а не одно вещественное.
Для русской локали необходимо писать 333,44,
в соответствии с параметрами локали.
Croessmah вне форума Ответить с цитированием
Старый 08.05.2017, 21:19   #37
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
Сообщение от Croessmah Посмотреть сообщение
Соответственно 333.44 - это два целых числа
не, с точки зрения atof это одно число 333 и какая-то непонятная фигня дальше, которую он игнорирует.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 09.05.2017, 00:21   #38
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
не, с точки зрения atof
Я не про atof, а про запись 333.44.
А atof, конечно же, споткнется на точке.

Последний раз редактировалось Croessmah; 09.05.2017 в 00:24.
Croessmah вне форума Ответить с цитированием
Старый 09.05.2017, 06:35   #39
KAMLS
Форумчанин
 
Регистрация: 09.04.2017
Сообщений: 598
По умолчанию

Спасибо, теперь понятно.
KAMLS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Копирование значений ячеек из одной строки в другую ольгаг Microsoft Office Excel 1 19.12.2016 10:47
умножение одной матрицы на другую (выводить не только ответ, но и ход решения) Delphi или C++ carrie bradshaw Помощь студентам 0 29.04.2014 00:20
Переход с одной строки на другую в DBF сканировании danxiel Помощь студентам 2 04.09.2012 14:15
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую reihtmonbern БД в Delphi 4 17.07.2012 23:25
Перенос данных из строки одной таблицы БД в другую БД Optigood БД в Delphi 15 12.05.2010 17:07