|
Вывод с помощью fprintf в WinAVR, Помогите с форматированным выводом |
|
|
|
 |
Ответов
|
Jul 4 2011, 09:03
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(smk @ Jul 4 2011, 13:00)  не работает. потому и подумал, что неправильно что-то сделал. Ну напишите в main для проверки: Код float pi = 3.14f; printf("pi = %.02f\n", pi); Должно печатать: Код pi = 3.14
|
|
|
|
|
Jul 4 2011, 12:01
|
Гуру
     
Группа: Свой
Сообщений: 2 246
Регистрация: 17-03-05
Из: Украина, Киев
Пользователь №: 3 446

|
Цитата(sergeeff @ Jul 4 2011, 12:03)  Ну напишите в main для проверки: Код float pi = 3.14f; printf("pi = %.02f\n", pi); Должно печатать: Код pi = 3.14 Вот такая ошибка: Код ../exampl.c:44: warning: format '%.02f' expects type 'double', but argument 2 has type 'float' В моем случае может следует вот так: Код printf(stderr, "pi = %.02f\n", pi); Цитата(demiurg_spb @ Jul 4 2011, 12:49)  Тоже давненько наткнулся на отсутствие обработки символа звёздочка в форматере pfintf'a в gcc. А топикстартеру рекомендую обратить внимание на функцию Код dtostrf(f, WIDTH, PREC, buff) таким образом можно выиграть по памяти не включая в проект толстую printf с поддержкой float. Обратил. Теперь пытаюсь понять как пользоваться.
--------------------
Живи днем так, чтобы ночью ты спал спокойно.
|
|
|
|
|
Jul 4 2011, 19:07
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(smk @ Jul 4 2011, 16:01)  Теперь пытаюсь понять как пользоваться. Да вроде всё тривиально. Цитата char* dtostrf (double __val, char __width, char __prec, char * __s)
The dtostrf() function converts the double value passed in val into an ASCII representationthat will be stored under s. The caller is responsible for providing sufficient storage in s. Conversion is done in the format '[-]d.ddd'. The minimum field width of the output string (including the '.' and the possible sign for negative values) is given in width, and prec determines the number of digits after the decimal sign.
The dtostrf() function returns the pointer to the converted string s. Разве нет?
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
Сообщений в этой теме
smk Вывод с помощью fprintf в WinAVR Jul 1 2011, 16:20 ReAl В стандартном С это делаетcя так (ширина поля и то... Jul 1 2011, 19:52 smk Не получается. Нужно как-то иначе. Или прийдется п... Jul 3 2011, 12:32 ReAl Цитата(smk @ Jul 3 2011, 15:32) Не получа... Jul 3 2011, 17:06  demiurg_spb Цитата(ReAl @ Jul 3 2011, 21:06) Точно, н... Jul 4 2011, 09:49   ReAl Цитата(demiurg_spb @ Jul 4 2011, 12:49) Т... Jul 4 2011, 23:15    smk Цитата(ReAl @ Jul 5 2011, 02:15) Конечно ... Jul 5 2011, 06:31     demiurg_spb КодFILE myout = FDEV_SETUP_STREAM(lcd_putchar,... Jul 5 2011, 06:52      smk Цитата(demiurg_spb @ Jul 5 2011, 09:52) К... Jul 5 2011, 07:13       demiurg_spb Цитата(smk @ Jul 5 2011, 11:13) как-то ну... Jul 5 2011, 07:20 skripach printf("F = %06f Hz\n", value); Не? Jul 3 2011, 14:08 smk Цитата(skripach @ Jul 3 2011, 17:08) prin... Jul 4 2011, 05:23  ARV Цитата(smk @ Jul 4 2011, 08:23) Значение ... Jul 4 2011, 06:20   smk Цитата(ARV @ Jul 4 2011, 09:20) не включе... Jul 4 2011, 07:34 sergeeff А в printf включена поддержка float? Jul 3 2011, 18:37 Dnepr33 Цитата(smk @ Jul 1 2011, 19:20) Мне нужно... Jul 3 2011, 18:46 smk Чет не выходит. Наверно таки проще свою процедурку... Jul 4 2011, 19:29 demiurg_spb Вольному - воля.
PS: если аргумент prec отрицатель... Jul 4 2011, 19:34 smk я тут похоже с указателем напутал. вывод на диспле... Jul 4 2011, 20:15
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|