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

Перевод чисел в определённую систему - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с чтением из файла http://www.cyberforum.ru/cpp-beginners/thread49511.html
Подскажите пожалуйста в чем ошибка? Чтения не происходит. Нули в массиве как были, так и остаются. первый раз работаю в Visual, может быть тут какие-то тонкости в этом плане? #include "stdafx.h" #include <windowsx.h> #include <AtlConv.h> #include <conio.h> FILE *fp; int coordinate; void vvod_koordinat() { char name_of_file;
C++ Препроцессор Профессионалы, ответте вот на какой вопрос: Мне необходимо получить файл, который образуется после обработки препроцессором, т.е. после замены всех #define, #include и т.д. и т.п. Использую MS VS 2008. Где мне в нем поменять настройки (задать команды может быть или еще что-нибудь) чтобы этот файл можно было просмотреть? http://www.cyberforum.ru/cpp-beginners/thread49463.html
C++ Программа телефонный номер
Тут столкнулся с проблемой. Программа не выводит телефонный номер, при вводе русских символов, реагирует только на английский ввод. Не знаю, вроде всё должно работать.Вот исходник: #include <iostream> #include <cstdio> using namespace std; int main() { setlocale(0,"");
Как скрыть программу от ctrl alt del? C++
Как скрыть программу от ctrl alt del? http://www.cyberguru.ru/cpp-sources/dll-applications/kak-skryt-programmu-ot-ctrl-alt-del.html не работает в win7
C++ Как удалить строку/столбец из двумерного вектора? http://www.cyberforum.ru/cpp-beginners/thread49415.html
Прошу помощи. До самого не доходит. Имеем вектор v . std::vector<std::vector<int> > v( N, std::vector<int>M); Как с помощью функции .erase() библиотеки vector удалить строчку x, чтоб массив стал v ?
C++ From UTF-8 to UNICODE здравствуйте!! у меня вот какой вопрос! Как сделать преобразование UTF-8 и Unicode? во общем моя программа считывает данные с базы( база на армянском) в буфер и тут начинаются все проблемы!! я не понимаю как преобразовать из UTF-8 (ето у меня с базы) UNICODE что бы потом уже работать с ним? подробнее

Показать сообщение отдельно
easybudda
Эксперт CЭксперт С++
9465 / 5478 / 927
Регистрация: 25.07.2009
Сообщений: 10,500
07.09.2009, 22:36     Перевод чисел в определённую систему
Более общий вариант. main переделывать "красиво" было лень, сделал, чтобы наверняка работала. И восьмеричную систему на шестеричную менять не стал - а то и в правду смешно.
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
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
 
/* revstr - строка наоборот */
char *revstr(char *s){
    char *h = s; /* head */
    char *t = h + strlen(s) - 1; /* tail */
    char c;
    
    while ( h < t ){
        c = *h;
        *h = *t;
        *t = c;
        h++;
        t--;
    }
    
    return(s);
}
 
/* возвращает в buf строку не длиннее len - 1 символов, представляющую число val в CC с основанием base, или NULL при неудаче */
char *itoan(char *buf, int len, unsigned int val, int base){
    static char num[] = "0123456789abcdefghijklmnopqrstuvwxyz";
    char *str = buf;
 
    if ( (base < 2) || (base > 35) )
        return(NULL);
    
    while ( val ){
        if ( --len < 1 )
            return(NULL);
        *buf++ = num[val % base];
        val /= base;
    }
    *buf = '\0';
    return(revstr(str));
}
        
    
    
 
int main(){
        char buf[BUFSIZ];
        char binval[sizeof(long)*CHAR_BIT + 1]; /* максимальная длинна long в двоичном виде с завершающим нулём */
        char octval[sizeof(long)*CHAR_BIT + 1];
        char decval[sizeof(long)*CHAR_BIT + 1];
        char hexval[sizeof(long)*CHAR_BIT + 1];
        char strval[sizeof(long)*CHAR_BIT + 1];
        char bas;
        long int d;
        
        while ( 1 ){
                printf("Enter some number followed by space separated basis (b o d x), or q to quit:\n");
                fgets(buf, BUFSIZ, stdin);
                if ( *buf == 'q' )
                        break;
                if ( sscanf(buf, "%s %c", &strval, &bas) != 2 )
                        continue;
                switch ( bas ){
                        case 'b' :
                                d = strtol(strval, NULL, 2);
                                break;
                        case 'o' :
                                d = strtol(strval, NULL, 8);
                                break;
                        case 'd' :
                                d = strtol(strval, NULL, 10);
                                break;
                        case 'x' :
                                d = strtol(strval, NULL, 16);
                                break;
                        default :
                                printf("Invalid basis value!\n");
                                exit(1);
                                break;
                }
                printf("Bin: %s\nOct: 0%s\nDec: %s\nHex: 0x%s\n", itoan(binval, sizeof(binval), (int)d, 2),
                                                                itoan(octval, sizeof(octval), (int)d, 8),
                                                                itoan(decval, sizeof(decval), (int)d, 10),
                                                                itoan(hexval, sizeof(hexval), (int)d, 16) );
        }
        
        return(0);
}
Перевод чисел в определённую систему
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru