![]() |
Вывод текста
Помогите разобраться....
По книге Станислава Горнакова пробывал выводить текст так там у него одни ошибки. Он предназначен для старого DXSDK. Я так и немогу понять как создать текст в С++, с помошщью какой команды. ЗЫ как вывести цифры на экран, прейдется преобразовывать типы (из int в char и т.д)? |
Ответ: Вывод текста
Имеется в виду это: http://adorning.ru/2010/01/10/c-urok-6-stroki/
Или что? |
Ответ: Вывод текста
Я имел ввиду вывод текста в 3D приложение
|
Ответ: Вывод текста
Цитата:
|
Ответ: Вывод текста
Но все же как быть с текстом? |
Ответ: Вывод текста
Неужели так сложно нагуглить самому что-то типа:
http://www.toymaker.info/Games/html/text.html Цитата:
|
Ответ: Вывод текста
Цитата:
|
Ответ: Вывод текста
можно еще char(n+48 ) в цикле
|
Ответ: Вывод текста
Цитата:
Цитата:
Цитата:
ЗЫ есть ли еще какя-нить команда для вывода текста в 3D приложение кроме Drawtext ? |
Ответ: Вывод текста
Цитата:
т.е. 123 задаётся как Код:
char n[3]; Код:
for(short i=0;i<sizeof(n);i++){ |
Ответ: Вывод текста
Цитата:
|
Ответ: Вывод текста
ну так можно получать разряды из числа а не хранить их в массиве
ну а вообще да лучше наверное itoa, хотя мне кто то говорил что там фишки не хорошие есть |
Ответ: Вывод текста
Цитата:
Цитата:
|
Ответ: Вывод текста
Вот краткая функция вывода текста:
Код:
void InitMyText(IDirect3DDevice9* dev,HFONT hFont) Код:
void PrintInt(int a, int x, int y,D3DCOLOR MyColor) Вот и не пойму что делать. Подскажите. |
Ответ: Вывод текста
а ты попробуй DrawTextA, а вообще переключи в свойствах проекта использовать unicode, на многобайтовую. Или wchar_t textint[33]
UPD: wchar_t* textint = new wchar_t[33]; |
Ответ: Вывод текста
Цитата:
|
Ответ: Вывод текста
Еще одно. А как узнать длину строки в пикселях?
|
Ответ: Вывод текста
Какой командой можно подсчитать длину моего текста(в пикселях)?
Другими словами я хочу объединить текст предложения с текстом цифр, но для этого мне надо знать длину строки первого текста чтобы потом поставить цифры. |
Ответ: Вывод текста
ооо ну это хз. Это я не умею делать. Примерно так
заранее узнать размер каждой буквы занести в массив например int wordSize[255]; узнать промежуток между буквами например int space = 1; Код:
int len=0; |
Ответ: Вывод текста
Короче опять проблемы:
Нашел функцию gcvt(....) которая выводит целые и вещественные числа.Пользовался часто пока не начал выводить числа меньше нуля. Причем число - 0.123456789 - выводится нормально, а такое - 0.0123456789 - через экспоненту(например: 0.01 = 1е-0.02). Как мне избавится от неё. Или может есть другая функция(которую я нигде не могу найти) или может подскажите с алгоритмом преобразования вещ. числа в строку? |
Ответ: Вывод текста
Тему не читай @ сразу отвечай.
Чем тебе не угодила функция sprintf? http://www.cplusplus.com/reference/c...stdio/sprintf/ |
Ответ: Вывод текста
UPD. Чтобы не париться с преобразованием каждой переменной в строку сделай свою функцию вывода с переменным кол-вом аргументов ( как printf и тому подобные ). Как-то при работе с Б3Д Сдк мне понадобилась подобная функция. Вот она
void bbTextEx( int x, int y, const char * text, ... ) { va_list argumentList; char buffer[512]; va_start(argumentList, text); vsprintf_s( buffer, text, argumentList); va_end(argumentList); bbText( x,y, buffer ); }; нужно еще подключить windows.h |
Ответ: Вывод текста
Цитата:
Код:
void bbTextEx( int x, int y, const char * text, ... ) Update: Извиняюсь за это: Цитата:
|
Ответ: Вывод текста
http://www.cplusplus.com/reference/c...darg/va_start/
http://www.cplusplus.com/reference/c...stdarg/va_end/ http://www.cplusplus.com/reference/c...tdio/vsprintf/ Цитата:
|
Ответ: Вывод текста
mr.DIMAS а ты не знаешь как сделать чтобы если число например = 0.01, а максимальный размер вводимых цифр=5, то чтоб число выводило - 0.01 а не 0.01000. Хочу избавляться от нулей даже если еще есть место для цифр. Как это сделать(через функцию sprintf и тп)?
|
Ответ: Вывод текста
float a=0.01f;
char text[5]; sprintf(text,"%.2f",a);//так че не работает? УПД. или так sprintf(text,"%.*f",2,a); |
Ответ: Вывод текста
Я наверно не правильно объяснил: нужно чтоб когда я ввожу число(будь то 0.01 или 0.001) оно само выбирало сколько цифр после запятой должно быть до последней цифры, а когда следующие идут нули то их оно просто округлять(не выводить).
Например: 0.001 = 0.001 0.0123000 = 0.0123 3.14150 = 3.1415 и т.д. Нашел следующие: sprintf(buffer,"%.g",nubmer); тогда все выше описанные проблемы исчезают кроме одной: мин. предел числа = 0.0001 -> далее идёт экспонент(который мне не нужен)! |
Ответ: Вывод текста
![]() |
Ответ: Вывод текста
Цитата:
|
Часовой пояс GMT +4, время: 08:48. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot