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

Компилятор сломался или ошибка? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выход по нажатию клавиши из терминала (Linux(UNIX) http://www.cyberforum.ru/cpp-beginners/thread629180.html
Уважаемые программисты, возникла проблема. Есть клиент, в нем 2 потока. Нужно организовать выход из программы по нажатию комбинации клавиш "Ctrl + D". Вот примерная схема. void *runStdIn() {...
C++ Создайте класс с именем Employee, включающий в качестве элементов данных три информационных пункта: имя, фамилию и месячную зарплату Дело обстоит так: Прочитав и, как я думал, поняв 3ю главу книги "Как программировать на с++" Дейтелов пришло время задачек. Немного собравшись я решил задачи 3.11 и почти правильно сделав 3.12... http://www.cyberforum.ru/cpp-beginners/thread629111.html
C++ Надо ускорить алгоритм вычисления чисел с не повторяющимися цифрами
Помогите ускорить алгоритм. Надо определить все числа с не повторяющимися цифрами от 0 до 9876543210. У меня время просчета занимает очень длительное время уже на 8-значном числе. Что-то не могу...
C++ Считывание символа с потока для дальнейших действий
Пользователь должен по запросу ввести символ для определения операции: сложения, вычитания или умножения матрицы на число. Не получается считать этот символ с потока. VC++.6 #include <stdio.h> ...
C++ Компилятор просит указать const в конструкторе http://www.cyberforum.ru/cpp-beginners/thread629094.html
Всем привет. Изучаю С++ по Р.Лафоре. В одном из заданий, к главе 8 понадобилось написать класс, представляющий простую дробь, и написать перегруженные операторы: -, +, * и /. Собственно проблем...
C++ MessageBox API MessageBox API: не получаеться обработать выбор. Мой код: int SELECT = MessageBox(hwnd, _T("Вы действительно хотите завершить работу программы? ВНИМАНИЕ! В случае завершения работы программы,... подробнее

Показать сообщение отдельно
Catstail
Модератор
22718 / 11087 / 1795
Регистрация: 12.02.2012
Сообщений: 18,284
26.07.2012, 22:37
Те, кто не хочет "изобретать велосипеды", никогда не изобретут ничего путного. Если интересно, как преобразовать число с плавающей точкой в строку, то вот:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
#include "math.h"
#include "iostream.h"
 
char * Dbl2Str(double x)
{
    char * buf = new char[24];
    int  p10,i,n,q=100;
 
    for (i=0; i<24; i++) buf[i]=0;
 
    buf[0]='0';
    buf[1]='.';
 
    p10=(int)log10(x); // äåñÿòè÷Г*ûé ïîðÿäîê
 
    // äåñÿòè÷Г*Г*Гї Г*îðìГ*ëèçГ*öèÿ Г¬Г*Г*ГІГЁГ±Г±Г»
 
    if (p10 > 1)
    {   p10++;
        for (i=1; i<=p10; i++) x=x/10.0;
    }
    
    if (p10 < -1)
        for (i=1; i<=abs(p10); i++) x=x*10.0;
 
    // Ïîëó÷Г*ГҐГ¬ Г¬Г*Г*ГІГЁГ±Г±Гі
 
    for (i=1; i<=15; i++)
    {
        x=x*10.0;
        n=(int)x;
        x=x-n;
        buf[i+1]='0'+n;
 
    }
    
    buf[17]='D';
 
    // Г§Г*Г*ГЄ ïîðÿäêГ*
 
    if (p10 < 0)
        buf[18]='-';
    else
        buf[18]='+';
 
    p10=abs(p10);
 
    // ïîðÿäîê
 
    for (i=1; i<=3; i++)
    {
        n=p10/q;
        buf[18+i]='0'+n;
        p10=p10%q;
        q=q/10;
    }
 
    return buf;
 
}
 
int main(int argc, char* argv[])
{
 
    char *S1=Dbl2Str(0.00012345789);
    char *S2=Dbl2Str(663663.88958);
 
    cout << S1 << endl;
    cout << S2 << endl;
 
    delete [] S1;
    delete [] S2;
 
    return 0;
}
Функция переводит в строковый вид только положительные числа (настучал на скорую руку). Перевод отрицательных оставляю интересующимся в качестве упражнения.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru