Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: sprintf и большое отрицательное число  (Прочитано 6071 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« : 21-11-2008 13:48 » 

Господа,

я явно туплю...

Код:
char sTmp[1000];
sprintf (sTmp, "%d", -9223372036854775808);

на выходе sTmp = 0 Не понял?? как это?Не понял??  А черт его знает... Не понял
да, происходит это в студии 2003.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
McZim
Команда клуба

ru
Offline Offline
Пол: Мужской
Я странный


WWW
« Ответ #1 : 21-11-2008 13:55 » 

Malaja, а integer какой по размеру?
Записан

The CBO without stats is like a morning without coffee. (c) T.Kyte.
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #2 : 21-11-2008 14:01 » 

McZim,

спасибочки! мда, пора домой - пятница...
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #3 : 21-11-2008 17:30 » 

это число есть
8000000000000000

а (int)8000000000000000  есть 0 )
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #4 : 24-11-2008 09:15 » 

Леш,

когда я увидела ответ McZim, я сразу поняла, что у меня шарики давно зашли за ролики! Ага
просто я в темпе бешеного собачьего вальса переделывала проект и мозги были сосредоточены на более глобальных вещах, поэтому sprintf даже не проверялся! Т.е. как обычно - на тривиальные вроде бы вещи даже не смотришь, т.к. само собой подразумевается, что они как раз всегда работают!
Изначально никто, видимо, на такие числа не рассчитывал, поэтому поставили тривиальный флаг %d. Ну а я даже не сообразила в запарке, что число и флаг не соответствуют друг другу...
Короче, все как всегда: "поспешишь - людей насмешишь" ;-(
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #5 : 24-11-2008 09:29 » 

да я бы не сказал, что форматирование - это тривиально ) Тут лучше всегда сразу задумываться
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 25-11-2008 05:02 » 

Кстати, компилятор VC не предупреждает о расхождении формата и аргументов, как это делает gcc?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #7 : 25-11-2008 05:07 » 

если поставить уровень предупреждений 3 или 4 - предупредит. С 4 - там ваще отдельная песня Отлично
Записан

Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #8 : 25-11-2008 12:58 » 

Леш,
когда сама пишу, то слежу всегда. А когда переделываю, тем более не свое, то сначала упор идет на то, что переделывается... Ты же знаешь - оно должно было быть готово еще вчера, хотя сказали только что ;-(

Ром,
я сейчас посмотрела установки проекта - стоит уровень 2. А менять установки низзя, это установка начальства.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Алексей++
кот глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #9 : 25-11-2008 15:09 » 

Ирин, смело ставь на время 3 - много интересного узнаешь (что исправить). А потом вернёшь 2
Записан

Serg79
Команда клуба

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 25-11-2008 15:19 » 

Ром,
я сейчас посмотрела установки проекта - стоит уровень 2. А менять установки низзя, это установка начальства.
Что за дурь, менять уровень Warning запрещает начальство?
Записан
Malaja
Команда клуба

de
Offline Offline
Пол: Женский

« Ответ #11 : 26-11-2008 10:11 » 

Serg79,

Ну оно ж начальство, ему видней...
Установки должны быть одинаковы у всех... Основание - когда программер что-то меняет, он потом забывает вернуть все взад, а другие потом страдают.
В принципе, действительно часто народ забывает и возвращает проект-файл в обще пользование с измененными установками, согласна.

Для себя я всегда стараюсь поставить уровень 3, если установлен 2-ой, но только тогда, когда нет гонки и никто не анступает на пятки, т.е. когда идет нормальный процесс. А когда стоят за спиной с криками "быстрее", то я уже ничего не меняю, т.к. потом точно забуду убрать свои изменения.
Записан

холоднокровней, Маня, Ви не на работе
---------------------------------------
четкое определение сущности бытия:
- А мы в прошлом или в будущем?- спросила Алиса.
- Мы в жопе, - ответил кролик.
- А "жопа" - это настоящее? - спросила Алиса.
- А "жопа" - это у нас символ вечности.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines