Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вывести переменную типа float на экран в DevCpp 
V
    Опции темы
Булка
  Дата 18.12.2010, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Всем доброго дня.
Требуется вывести на экран значения нескольких переменных типа float. Пробовал TextOut, но ругается на тип...
Пробовал ещё так (нашёл в инете):
Цитата

              CString buff;
    buff.Format(_T("%f"),value.a);
    TextOut(hdc, 20, 20, buff, 5);

... но о CString мой devcpp и понятия не имеет. Что тогда требуется подключить?
PM MAIL   Вверх
bsa
Дата 19.12.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: нет
Всего: 196



Булка, во-первых, CString входит в состав MFC, который безнадежно устарел. Во-вторых, третий параметр TextOut должен быть типа TCHAR.
И вообще, читай документацию сначала: http://msdn.microsoft.com/en-us/library/dd...3(v=vs.85).aspx
PM   Вверх
Булка
  Дата 19.12.2010, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Я новичёк в этом деле, наверно по этому ваша ссылка не натолкнула меня на решение проблемы. Вопрос остаётся открытым: как вывести в окно значения переменных типа float? Не обязательно посредством этой функции, главное - чтобы работало.  smile 

Кстати, так выводит, но непонятно что вместо чисел, считанных из файла:
Цитата
buf=(char*) &value.a;
TextOut(hdc, 20, 20, buf, 5);


Это сообщение отредактировал(а) Булка - 19.12.2010, 22:09
PM MAIL   Вверх
Earnest
Дата 20.12.2010, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Естественно, числа сначала нужно преобразовать в строку. Кроме CString есть еще прямые функции форматирования типа sprintf. А начать тебе нужно вообще с азов, похоже, раз ты такую простую вещь не понимаешь.


--------------------
...
PM   Вверх
Булка
  Дата 21.12.2010, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Да, пробелов много, но сейчас моя первоочередная задача не их заполнять, а доделать задание к завтрашнему дню. Собственно, спасибо за наводку на sprintf, сделал, работает  smile 
Привожу код для таких как я smile :
Код

...
    struct VALUES  // объявляем структуру с двумя элементами
    {
        float a; // для левой диаграммы
        float b; // для правой диаграммы
    };
    VALUES value;
    value.a=1.3456;
    char buf;
        sprintf (&buf, "%f", value.a);
        TextOut(hdc, 20, 20, &buf, strlen(&buf));
...

И спасибо всем, кто учавствовал.

Это сообщение отредактировал(а) Булка - 21.12.2010, 01:14
PM MAIL   Вверх
borisbn
Дата 21.12.2010, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 2
Всего: 135



Булка, подумай, сколько символов нужно, чтобы отобразить число 1.3456, и посмотри, сколько ты выделил под buf ( подсказка: 1 )


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Earnest
Дата 21.12.2010, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Ой, мама! Вот почему у нас спутники-то падают... smile 


--------------------
...
PM   Вверх
Булка
Дата 22.12.2010, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



Цитата

Булка, подумай, сколько символов нужно, чтобы отобразить число 1.3456, и посмотри, сколько ты выделил под buf ( подсказка: 1 )

Почему 1? 1 символ? Нет, всё выводится верно, что в файле, то и выводится, сколько цифр после точки не пиши.

Цитата

Ой, мама! Вот почему у нас спутники-то падают...  

Не конструктивно. Я не заявлял, что программирование - центр моей жизни, так что смеяться надо мной из-за того, что в этом деле я новичёк, не правильно. Вам должно быть стыдно, капитан Надменность.

Это сообщение отредактировал(а) Булка - 22.12.2010, 15:12
PM MAIL   Вверх
borisbn
Дата 22.12.2010, 17:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 2
Всего: 135



Цитата(Булка @  22.12.2010,  15:04 Найти цитируемый пост)
Почему 1? 1 символ?


Цитата(Булка @  21.12.2010,  01:12 Найти цитируемый пост)
 char buf;


А сколько это символов ?
То, что выводится правильно ещё не показатель, т.к. ф-ция sprintf перетирает память, расположенную вслед за buf, и, если бы программа была посложнее, и эта память использовалась бы, то в лучшем случае она бы вылетела, а в худшем - работала бы неправильно. И хорошо ещё, если бы это можно было бы легко заметить. А ведь это могло выявиться через два-три дня работы программы...


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
Булка
Дата 23.12.2010, 03:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 20.4.2008

Репутация: нет
Всего: нет



2 borisbn
Спасибо, учёл.
PM MAIL   Вверх
Earnest
Дата 24.12.2010, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(Булка @  22.12.2010,  16:04 Найти цитируемый пост)
Не конструктивно. Я не заявлял, что программирование - центр моей жизни, так что смеяться надо мной из-за того, что в этом деле я новичёк, не правильно. Вам должно быть стыдно, капитан Надменность.

Я не смеялась, я ужасалась. Но мне все равно стыдно, извини. smile 


--------------------
...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.