Форум программистов, компьютерный форум CyberForum.ru

Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.84
Stoun
0 / 0 / 0
Регистрация: 21.03.2007
Сообщений: 6
23.03.2007, 11:52     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #1
Вот кусок текста:
Dir = Dir_X + Dir_Y;
printf("X%d,",dX);
printf("%s ",Xs);
printf("Y%d,",dY);
printf("%s ",Ys);
printf("Dr%d ",Dir);
printf("Cm%d\n",Command);

Вот ПРАВИЛЬНЫЕ результаты вывода:
X0, Y0, Dr0 Cm0
X244, 0.489 Y-5935, -11.87 Dr9 Cm0

А это все printf объединены в один:
printf("X%d,%s Y%d,%s Dr%d Cm%d\n", dX,Xs,dY,Ys,Dir,Command);

И вот результаты:
X0, Y-28727,(NULL) Dr4022 Cm-28727
X244, Y-28727, Dr4022 Cm-28727

Вместо числовых значений выводятся вроде как адреса строк, а сами строки пропали... Под WinXP, Win98, DOS - результат одинаковый. Почему такой бардак? Может компилятор сменить? Ткните в ссылку где можно взять более новый или руки мне поправьте...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2007, 11:52     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол???
Посмотрите здесь:

проверьте пожалуйста еще один код программы, кто может C++
Кто объяснит почему true == false ? C++
C++ как сделать цикл, чтобы после моего действия, которое делает программа, она предлагала мне сделать его еще раз?
C++ В заданной строке выбрать те слова,в которых первая буква этого слова встречается еще хоть один раз
Чем ::printf предпочтительнее printf? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Valmont1986
0 / 0 / 0
Регистрация: 23.03.2007
Сообщений: 4
23.03.2007, 16:25     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #2
Компилятор явно не причём, пока не пойму в чём дело приведи код полностью, я предлагаю использовать потоки, и думаю всё запашет, или ты принципиально их не используешь? Но во всяко случае попробуй так:
cout<<"X"<<" "<<dX<<" "<<Xs<<"Y"<<" "<<dY<<" "<<Ys<<" "<<Dir<<" "<<Command<<endl;
Тока не забуть #include<iostream.h>, опубликуй весь код тогда разберусь!!
Ensase
Флудер
 Аватар для Ensase
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
23.03.2007, 16:27     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #3
Я пишу на Dev-C++ (www.bloodshed.net) и все твои неполадки отсутствуют. Все нормально (в обоих случаях). Да и визуально видно - ошибок нет, если ты конечно обьявил правильно.
Valmont1986
0 / 0 / 0
Регистрация: 23.03.2007
Сообщений: 4
23.03.2007, 16:29     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #4
Пришли, весь код подумаем!!! Не в компиляторе дело!!
Ensase
Флудер
 Аватар для Ensase
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
23.03.2007, 16:34     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #5
Понятно что не с компилятором. Дело в обьявлении и инициализации.
Stoun
0 / 0 / 0
Регистрация: 21.03.2007
Сообщений: 6
26.03.2007, 11:45  [ТС]     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #6
Ну вот, например.


void main()
{
long Imp_dX=623,Imp_dY=532;
char Dir=8,Ent=10,Com=2,Par=14;

printf("X%4d ",Imp_dX);
printf("Y%4d ",Imp_dY);
printf("Dir%X ",Dir);
printf("Ent%d ",Ent);
printf("Com%d ",Com);
printf("Par%X\n", Par);

printf("X%4d Y%4d Dir%X Ent%d Com%d Par%X\n",Imp_dX,Imp_dY,Dir,Ent,Com,Par);
}

А вот результат:

X 623 Y 532 Dir8 Ent10 Com2 ParE
X 623 Y 0 Dir214 Ent0 Com8 ParA

Там где printf отдельно - все выводится правильно .Там где одной строкой - бардак.
Ensase
Флудер
 Аватар для Ensase
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
26.03.2007, 16:02     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #7
залил программу - работает отлично без глюков!
Stoun
0 / 0 / 0
Регистрация: 21.03.2007
Сообщений: 6
27.03.2007, 14:03  [ТС]     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #8
Скачал Dev-C++ с www.bloodshed.net. В нем действительно все работает без глюков. Да и сама прога намного уобнее и функциональнее. Спасибо за ссылку :-)
Только проблемка. Некоторые функции, которые раньше работали, сейчас не работают.
Компилятор ругается:

10 E:\PROJECT\Test.cpp `window' undeclared (first use this function)

Я так понял, что этой (и др.) функции отсутствуют в соответствующих .h - проверял, действительно нет. тогда как их использовать? Может они по другому называются или нужно еще что-то подключить в настройках компилера?
Ensase
Флудер
 Аватар для Ensase
191 / 29 / 5
Регистрация: 23.03.2007
Сообщений: 335
28.03.2007, 13:48     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #9
Данные функции на самом деле не имеют отношения к яыку C++, как таковому - это функции относятся к Багдаду(Borland'y). Все доступные функции языка С включенные в стандарт - можно узнать в самом стандарте 99 года языка С. Относительно C++ - есть стандарт 98 года - там описаны все поддерживаемые любыми компиляторами возможности. Если действительно хочешь научится С/С++ - читай:
Б. Керниган, Д. Ритчи
Язык программирования Си
(книга основоположников языка!)
и
Б.Страуструп
Язык программирования С++, 3-е издание
или
(предпочтительней)
Язык программирования С++, специальное издание
(издание играет роль!!!!!!)

Будут вопросы задавай.
Alucard
1 / 1 / 1
Регистрация: 18.04.2007
Сообщений: 41
23.04.2007, 08:09     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #10
Слушай меня: напиши в самую верхнюю строчку
#include <iostream>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 11:54     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол???
Еще ссылки по теме:

C++ Массив строк. Определить количество слов, у которых первый символ встречается в слове еще хотя бы один раз
В чем прикол?) C++
Непонятная ошибка, кто объяснит? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
AltMAN
0 / 0 / 0
Регистрация: 11.05.2014
Сообщений: 4
11.05.2014, 11:54     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол??? #11
используйте форматированный вывод setprecision и setwidth
Yandex
Объявления
11.05.2014, 11:54     Еще один глюк. На этот раз с printf. Объяснит мне кто-нибудь в чем прикол???
Ответ Создать тему
Опции темы

Текущее время: 10:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru