Форум программистов, компьютерный форум, киберфорум
Наши страницы

Коррекция перевода float > char[] - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перевод расстояний из дюймов в сантиметры http://www.cyberforum.ru/cpp-beginners/thread101050.html
1. Напишите программу печати таблицы перевода расстояний из дюймов в сантиметры для значений длин от 1 до 20 дюймов. 1 дюйм = 2,54 см. (1 балл) Добавлено через 2 минуты 2. Напишите программу...
C++ Вопрос по кнопкам в С++ Подскажите какой параметр дописать в свойствах кнопки, чтобы после ее нажатия она становилась неактивной? http://www.cyberforum.ru/cpp-beginners/thread101047.html
С помощью while напишите программу вывода всех четных чисел в диапазоне от 2 до 100 включительно C++
1.С помощью while напишите программу вывода всех четных чисел в диапазоне от 2 до 100 включительно 2.Составить программу перевода целого числа а(а<0) в двоичную систему счисления Заранее спс
Законы Моргана C++
У Дейтлов есть задачка Не пойму, как !(условие1 && условие2) может быть эквивалентно (!условие1 || !условие2)? Первое сбудется, если и условие1, и условие2 не заданы. А второе, если не задано либо...
C++ Матрица http://www.cyberforum.ru/cpp-beginners/thread101029.html
короче вот такая хрень)) Дана целочисленная квадратная матрица. Определить: 1). произведение элементов в тех строках, которые не содержат отрицательных элементов. 2). максимум среди сумм элементов...
C++ динамический список вообщем огромная просьба, показать хотя бы каким макаром писать, ну если будет что то готовое в коде, то это было бы классно, желателен самый простой способ, чтоб до меня дошло Заранее спасибо ... подробнее

Показать сообщение отдельно
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,478

Коррекция перевода float > char[] - C++

03.03.2010, 19:59. Просмотров 2253. Ответов 9
Метки (Все метки)

Вечер добрый! Задача такова - из float'а получить строку, но после запятой нужно оставить N знаков. Собственно я вывожу FPS на экран если конкретнее, а так в общем и для других целей сгодится.
Делаю так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define DOT_DIG_NUM 2
#define TEMP_SIZE 30
qString::qString(float newData){
    char newCharData[TEMP_SIZE] = {0};
/// start
    gcvt(newData, 1 + newData/10.0 + DOT_DIG_NUM, &newCharData[0]);
    int dot_pos = 0; while(newCharData[dot_pos] != '.') dot_pos++;
    if ( dot_pos >= TEMP_SIZE ) dot_pos = 0;
    char* AfterDot = &newCharData[dot_pos+1];
    for (int i = 0; i < DOT_DIG_NUM; i++)
    {
        if ( AfterDot[i] == 0 )
            AfterDot[i] = '0';
    }
    AfterDot[DOT_DIG_NUM] = 0;
/// end
    _new(&newCharData[0]);
}
При этом коде тут
C++
1
2
3
4
5
void qString::_new (const char* newData){
    if ( newData != NULL )
    {
        // Выделение памяти под полученную строку
        _size = strlen(newData) + 1; // тут
вылетает
Необработанное исключение в "0x00479982" в "WFAE.exe": 0xC0000005: Нарушение прав доступа при записи "0x00003034".
(адрес this - 0x00003030)
Впрочем ошибка не важна, хочется хороший алгоритм перевода написать, видно тот барахлит А без него все работает отлично
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru