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

Как перевести строку в читабельный вид? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Перегрузка конструктора копирования и оператора присвоения http://www.cyberforum.ru/cpp-beginners/thread444377.html
Всем привет, сразу к делу. После прочтения 11 главы Лафоре столкнулся с такой бедой как понятие перегрузка оператора присвоения. Дело в том что Лафоре говорит что именно оператор присвоения является...
C++ Дальнейшее изучение С++ Вот хотел у вас спросить, что дальше можно почитать после Бьярне Страуструп Программирование: принципы и практика использования C++, и после Р.Лафоре ООП в С++, планирую купить по WinApi и что то еще... http://www.cyberforum.ru/cpp-beginners/thread444347.html
полноэкранный режим консоли C++
Здравствуйте! Не могли бы подсказать, как программно переходить в полноэкранный режим в консоле? (Именно переходить, а не получать информацию, является ли режим полноэранным) Добавлено через...
C++ Преобразовать выражение в постфиксную форму
Преобразовать выражение, составленное из цифр и знаков арифметических операций (+,-,*,/) в постфиксную форму. В постфиксной форме сначала записываются операнды, а затем знак операции. Обычная запись...
C++ Построить некоторый Автомат на три команды http://www.cyberforum.ru/cpp-beginners/thread444324.html
Некоторый автомат может запросить два числа и выполнить 3 команды. Команда А преобразует имеющуюся пару чисел (х, у) в (х-у,у), команда В преобразует пару чисел (х,у) в пару (х+у,у), команда С...
C++ Векторы Определите полусумму длин двух векторов А(1,5; 2,5; -0,3) и В(-11,7; -9,3; 2,5; 3,7; -1,2). Вычислите, длины вектора оформив в виде функции. подробнее

Показать сообщение отдельно
-=ЮрА=-
Заблокирован
Автор FAQ
13.02.2012, 11:48
Также предлагаю вариант кода для любителей С, функционал аналогичен функционалу кода приведенного в посте 44
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
87
88
89
90
91
92
93
94
95
96
#include <windows.h>
#include <stdio.h>
#include <math.h>
 
char * Utf2Ascii(WCHAR*lpw)
{
    long uLen = WideCharToMultiByte(CP_ACP, 0, lpw,   -1,  NULL, NULL, NULL, NULL);
    char *str = new char[uLen];
                WideCharToMultiByte(CP_ACP, 0, lpw, uLen,  str , uLen, NULL, NULL);
    return str;
}
//Г*        ' ' a+7  a     a+9  a+4  a+8
//0430 0020 0437 0430 0439 0434 0438
int getHEXCode(int code)
{
    int ipow = 0;
    int iHEX = (code%10);
    while(0 <  (code /= 10))
    {
        ipow += 1;
        iHEX += (code%10)*pow(16,1.0*ipow);
    }
    return iHEX;
}
 
int main()
{
    system("chcp 1251");
    WCHAR *lpw  = (WCHAR *)malloc(sizeof(WCHAR));
    char * text = 0;
    char * line = 0;
    char * sout = 0;
    long sLen = -1;
    long fpos = -1;
    long code = -1;
    long nchr = 0;
    FILE *ofs = 0;
    FILE *ifs = fopen("sms.txt","rb");
    if(!ifs)
        printf("ГЌГҐ ìîãó îòêðûòü sms.txt\n");
    else
    {
        fseek(ifs,0,SEEK_END);
        sLen = ftell(ifs);
        fseek(ifs,0,SEEK_SET);
        if(!(text = (char *)malloc((1 + sLen)*sizeof(char))))
            printf("ГЋГёГЁГЎГЄГ* âûäåëåГ*ГЁГї ГЇГ*ìÿòè ïîä Г¤Г*Г*Г*ûå ГґГ*éëГ*\n");
        else
        {
            if(!fread(text,1,sLen,ifs))
                printf("ГЋГёГЁГЎГЄГ* Г·ГІГҐГ*ГЁГї ГґГ*éëГ*\n");
            else
                text[sLen] = '\0';//ÓáðГ*ëè ìóñîð ГўГЄГ®Г*öå text
        }
        fclose(ifs);
        if(text)
        {
            printf("Г„Г*Г*Г*ûå ГґГ*éëГ* :\n%s\n",text);
            line = strtok(text,"\\u");
            while(line && lpw)
            {
                code = atoi(line);
                lpw[nchr] = getHEXCode(code);
                //ÄèГ*Г*ìè÷åñêè Г*ëî÷èì ГЇГ*ìÿòü äëÿ lpw
                lpw = (WCHAR *)realloc
                    (
                        (void *)lpw,
                        (1 + (nchr = nchr + 1))*sizeof(WCHAR)
                    );
                if(!lpw)
                    printf("ГЋГёГЁГЎГЄГ* âûäåëåГ*ГЁГї ГЇГ*ìÿòè ïîä ГЎГіГґГҐГ° WCHAR\n");
                line = strtok(NULL,"\\u");
            }
            lpw[nchr] = 0;
            if(!(sout = Utf2Ascii(lpw)))
                printf("ГЋГёГЁГЎГЄГ* ïðåîáðГ*çîâГ*Г*ГЁГї\n");
            else
            {
                printf("ÏðåîáðГ*çîâГ*Г*Г*ûå Г¤Г*Г*Г*ûå :\n%s\n",sout);
                ofs = fopen("out.txt","wb");
                if(!ofs)
                    printf("ГЌГҐ ìîãó ñîçäГ*ГІГј ГґГ*éë out.txt\n");
                else
                    fprintf(ofs,"%s",sout);
                if(ofs)
                    fclose(ofs);
            }
        }
    }
    system("pause");
    if(lpw)
        free((void *)lpw);
    if(sout)
        free((void *)sout);
    return 0;
}
0
Миниатюры
Как перевести строку в читабельный вид?  
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru