![]() |
Модераторы: xvr |
![]() ![]() ![]() |
|
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
для gcc
праграмма не работает тоесть выдает не правильный результат типа большое целое число а не то которое стоит в строке. почему? пробывал gcc в виндах. cygwin, потом у меня есть devc++ думал может ошибка в системе ( у меня вин2000 немецкий) установил дебиан свежий. тоже не то показывает. майкрософтовскую студию 2005 пока не установил. (не хочу ихний эксплорер) чо посоветуете, ап какую стенку бится?
Это сообщение отредактировал(а) cooper123 - 30.7.2007, 16:22 |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
|
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
не критичная ошибка, тоже не работает. увы.
|
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
достаточно критичная, чтобы появились симптомы как у тебя в чем выражается? Все так же осталось? Кстати, в последних двух y подразумевался?
|
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
s="1.2345"
x=atof(s); а на консоле печатается х=309237632.0000 а должно быть х=1.2345 Добавлено через 5 минут и 41 секунду программка собственная тестовая, потому как я программирую в другой системе и захотелось проверить производительность запрограмировав некоторые функции на си по идее самое быстрое . Но для начала надо прочитать данные из файла. ну и самое простое прочитать это самое число с дробной частью. а оно читает но выдает вот такой результат. почему не знаю. Казалось бы самое элементарное. как получится присвою себе гордое звание чайника. а пока даже этого не получается. увы.... Добавлено через 8 минут и 3 секунды памахите.... |
|||
|
||||
JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 3 Всего: 162 |
не знаю, что там у тебя... вот рабочая версия твоей программы, проверено на g++ 4.1.2:
|
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
может быть я не так компилирую
gcc prob.c -o prob |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Вообще-то, спецификаторы %e и %f подразумевают аргумент типа double. К ним не применяются модификаторы l. Только L (long doble).
Думаю, у тебя проблемы из-за того, что ты используешь float там, где надо использовать double, и double, где должно быть long double. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: нет Всего: 92 |
bsa, в студии для корректной работы следует для double указывать формат с l или с L (без разницы вроде) в начале
|
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
но если JackYF приводит рабочую версию программы а она у меня не идет то видимо в другом в чем то.
|
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
cooper123,
|
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
думаю с компиляцией что то не то. только вот как компилировать с g++ вместо gcc я не представляю.
Добавлено через 5 минут и 32 секунды powerfox отредоктировать название не получилось. |
|||
|
||||
powerfox |
|
||||||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
Зачем этот заголовок? Поправленный код JackYF'a:
Добавлено через 2 минуты и 32 секунды
Для этого нужно выбрать редактирование первого поста.
Так же. Но это извращение. Зачем компилировать Си код компилятором С++. |
||||||
|
|||||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
остался от предыдущих экспериментов. вроде не мешает.
но можно и убрать. в данном случае не помогает. ничто. Для этого нужно выбрать редактирование первого поста. пытался не получилось. сорри. Это сообщение отредактировал(а) cooper123 - 30.7.2007, 16:24 |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
cooper123, посмотри мой код. Там всё нормально (кроме последних 2-х чисел, так ты выбрал для них тип флоат). Если им тоже задать %g вместо %f, то нули тоже обрежутся. Читай про форматированный вывод - компилятор тут нипричём.
Это сообщение отредактировал(а) powerfox - 30.7.2007, 16:25 |
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
дело не в форматировании, форматирование не изменяет число оно может быть уменьшает точность или читаемость но как из 1.2345 получается что то вроде 3098746454 ?
|
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
||||
|
||||
bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
На сколько я знаю, Visual Studio (о ней речь?) под Linux и другими Unix-like системами не работает и, более того, даже не компилит под них.
cooper123, спецификаторы нужны не только для задания форматирования, но и для определения того, что ты указал в качестве параметров. Поэтому нельзя надеяться на корректность, когда ты указываешь, что в параметрах у тебя double (8 байт), а передаешь float (4 байта). Это сообщение отредактировал(а) bsa - 30.7.2007, 16:36 |
||||
|
|||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
в данный момент вариант такой
sytem debial (last net intallation) gcc 4:4.1.1-15 //установил через пакетный менеджер из сети. сомпиляция делалась так: gcc /dir1/prob -o /dir2/prob Это сообщение отредактировал(а) cooper123 - 30.7.2007, 16:41 |
|||
|
||||
bsa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 16 Всего: 196 |
Попробуй так:
|
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
cooper123, и поменяй %f на %g, как я тебе говорил.
|
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
bsa (double)y не помогло. и %g тоже не помогло
насчет форматирования Вы конечно же правы. но в данном случае налицо ошибка начинающего. более грубая нежели форматирование. Вот только в чем она заключается? Это сообщение отредактировал(а) cooper123 - 30.7.2007, 16:50 |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
cooper123, попробуй скомпилировать с помощью g++ (замени просто gcc).
А ты уверен, что ты тот исполняемый файл запускаешь? Как ты запускаешь приложение? |
|||
|
||||
cooper123 |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 56 Регистрация: 30.7.2007 Репутация: нет Всего: нет |
для уверенности я пишу что нибудь типа "y now is" и когда уверенность пропадает пишу что нибудь другое.
g++ сщчас попробую, только видимо мне его еще установить надо, потому как перед этим пробывал и не получилось. установил и сразу получилось. сначала на ++ и потом на сс странно а в чем дело то? Добавлено @ 17:03 в общем спасибо всем за помощь чайнику. урааааа!!!! будем дальше двигаться спасибо еще раз. сщчас попробую на виндах тоже г++ установить. а на cygwin такой фокус не проходит. хотя может быть дело в виндах. не прошел, просто старый екзек был, удалил его. вот видь оказывается си без плюсов нету. спасибо пауерфокс - ты настоящий друх та же бадяга на mingw и просто гсс в командном окне, хотя он берется из mingw. Это сообщение отредактировал(а) cooper123 - 30.7.2007, 17:34 |
|||
|
||||
powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 5 Всего: 97 |
Не за что. Очень странная ошибка... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Программирование под Unix/Linux" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |