Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Что с sprintf() ?

418
24 марта 2002 года
artgonch
54 / / 20.07.2000
Уважаемые товарищи программисты. Разъясните, пожалуйста, как работает функция sprintf().
Я исползую вот такой код
...
char s[10];
double d = 3.14;
sprintf(s, "pi = %f", d);
...
Но в строку заносятся только нули "0.0000"
Аноним
#include <stdio.h>
void main( void )
{
char buffer[200], s[] = “computer”, c = ‘l’;
int i = 35, j;
float fp = 1.7320534f;

/* Format and print various data */
j = sprintf( buffer, “\tString %s\n”, s );
j += sprintf( buffer + j, “\tCharacter %c\n”, c );
j += sprintf( buffer + j, “\tInteger %d\n”, i );
j += sprintf( buffer + j, “\tReal %f\n”, fp );

printf( “Output\n%s\ncharacter count = %d\n”, buffer, j );
}

http//www.development.efficientit.com
475
24 марта 2002 года
Winnie
90 / / 20.03.2000
Пиши
sprintf(s, &quot;pi = %.2f&quot;, d);
тогда посе запятой будут точно 2 цифры.
по умолчанию он выводит 6 цифр - т.е. строка получается &quot;pi = 3.140000&quot; - длина 13 символов а размер буферу у тебя только 10!
Аноним
форматная строка &quot;%f&quot; подразумевает что аргументом функции будет переменная типа float. В твоем примере она double, вот ничего и не работает...
475
25 марта 2002 года
Winnie
90 / / 20.03.2000
float... double... какая в ... разница!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог