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

Недопонимание с кодировкой - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамический массив http://www.cyberforum.ru/cpp-beginners/thread145736.html
Надо: Сформировать массив строк, добавить в него строку с заданным номером. Не знаю,как добавить в него строку с заданным номером. Может кто сможет помочь?
C++ Массив из литер Нужно написать прогу которая будет считывать данные из файла, в котором содержатся числа, и переносить эти числа в массив. Массив имеет размерность 10. http://www.cyberforum.ru/cpp-beginners/thread145725.html
блок-схемы для ООП C++
Доброго времени, Подскажите пожалуйста, как рисовать блок-схемы для программы с граф. интерфейсом (Qt, Visual и.д.) где почти все через классы, шаблоны и т.д. и т.п. Если я включаю её и у меня появляеться меню с парой кнопок и парой строчек для ввода данных? если б была консольная програмка, то там все шло б последовательно, а тут я могу сначала ввести данные или сразу нажать кнопку... и...
C++ Считать значения файла, найти их минимальное и максимальное значения
5. Дан файл File_in.dat, содержащий 65536 целых чисел. Считать значения файла, найти их минимальное и максимальное значения. Результат записать в файл File_out.dat. даже не представляю как делать)) помогите)
C++ Подсчитать во сколько раз русских букв больше чем английских http://www.cyberforum.ru/cpp-beginners/thread145665.html
Подскажите пожалуйста!как выглядит программа которая подсчитывает во сколько раз русских букв больше чем английских.
C++ Реализация interface Подскажите, как реализовывать интерфейс на с++. На языке Джава это делается так: public interface NewInterface { void privet(int param); } подробнее

Показать сообщение отдельно
Призрак286397
Сообщений: n/a
15.06.2010, 15:54     Недопонимание с кодировкой
И так задание:
Выходной файл представляет собой HTML-документ, с требуемым по заданию табличным представлением данных, либо наличием ссылок на выделяемые фрагменты. Входной файл – обычный текстовый файл, полученный сохранением документа (doc) в тестовый файл (txt) (абзац документа – строка текста). При разработке системы адресации производится ставятся якоря (метки) либо на все абзацы, либо на сами выделенные фрагменты. Необходимая информация сохраняется в динамических структурах данных.
Программа подсчитывает частоты появления слов в тексте, слова считаются одинаковыми при совпадении первых 70% букв (% совпадения можно менять, синтаксис слов не учитывается). Формируется таблица из первых n наиболее часто встречающихся слов, в таблице содержится само слово и ссылки на все абзацы, где оно появляется.
-----------------------------------------------------------------------------------------------------------
а проблема в том что у меня текст не выводиться на русском, подскажите как это сделать!(пищу в Borlande c++)

Так программу я вроде написал:
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <stdio.h>
#include <iostream.h>
#include <string.h>
#include <locale.h>
#include <fstream.h>
#include <windows.h>
#include <malloc.h>
 
struct word {
    char* wd;
    int n, sz;
    int* abz;
void add(char c[],int na){
    wd=strdup(c);
    n=1, sz=10;
    abz = new int[10];
    abz[0]=na;
    }
void add(int na){
    abz[n++]=na;
    if (n!=sz) return;
    sz*=2;
    abz=(int*)realloc(abz,sz*sizeof(int));
    }
void put(){
    printf("%20s %d\n",wd,n);
    }
} *WD;
 
 
 
int n=0, sz;
int kk = 0;
 
//------- Сотрировка рекурсивным разделением массива
// В качестве медианы - среднее арифметическое
 void sort(word in[], int a, int b){
 int i,j,mode;
 double sr=0;
 if (a>=b) return;                      // Размер части =0
 for (i=a; i<=b; i++) sr+=in[i].n;
 sr=sr/(b-a+1);
 for (i=a, j=b; i <= j;)
    {
    if (in[i].n> sr) { i++; continue; } // Слева - меньше, пропустить
    if (in[j].n<=sr) { j--; continue; } // Справа - больше, пропустить
    word c = in[i]; in[i] = in[j]; in[j]=c;
    i++,j--;                            // Поменять местами и пропустить
    }
 if (i==a) return;                      // все равны и в правой части
 sort(in,a,j); sort(in,i,b);}           // рекурсивный вызов для двух частей
 
 
int getw(FILE *fd, char c[]){
    int i;
    if (kk == 1) { kk = 0; return 1;}
    while(1){
        c[0] = getc(fd);
        if (feof(fd)) return -1;
        if (c[0] == '\n') return 1;
        if (c[0] != ' ' && c[0] != '\t') break;
    }
    i = 0;
    do{i++; c[i] = getc(fd);}
    while(!feof(fd) && c[i] != '\n' && c[i] !=' ' && c[i] !='\t');
    if (c[i] == '\n') kk = 1;
 
    c[i] = 0;
    return 0;
    }
void readfilestr(char*name)//чтение текстового файла
{
    printf("Reading text file...\n");
    char*str=new char [81];
    FILE *in;
    if(!(in=fopen(name,"rt")))
    {
        printf("File open is failure...\n");
        return ;
    }
    fscanf(in,"%s",str);
    while(!feof(in))
    {
        printf("%s\n",str);
        fscanf(in,"%s",str);
    }
    fclose(in);
    }
void main()
{
    int MM=100;
    int i;
    setlocale(LC_ALL,"Russian");            // Установка преобразования при выводе
    sz=100;
    n=0;
    WD=new word[sz];
    FILE *fd=fopen("text2.txt","r");
    if (fd==NULL) return;
    char c[1000];
    int na=0;
    int k;
    int nn=0;
    while((k=getw(fd,c))!=-1){
        if (k==1) na++;
        else            // printf("%d %s\n",na,c);
        {
        nn++;
        if (nn%1000==0) printf("%d\n",nn);
        if (strlen(c)<=3) continue;
        for (i=0;i<n && strcmp(c,WD[i].wd);i++);
        if (i==n) {     // Не нашли
            WD[n].add(c,na);
            n++;
            if (n==sz) {sz*=2; WD=(word*)realloc(WD,sz*sizeof(word)); }
            }
        else WD[i].add(na);
        }
    }
    sort(WD,0,n-1);
     for (i=0;i<n;i++) WD[i].put();
    fclose(fd);
    fd=fopen("text2.txt","r");
    FILE *fdo=fopen("mmm.htm","w");
    fprintf(fdo,"<html><body><table border=1>\n");
    
    for (i=0;i<MM && i<n;i++){
        fprintf(fdo,"<tr><td>%s</td><td>%d</td><td>",WD[i].wd,WD[i].n);
        for (int j=0;j<WD[i].n;j++) fprintf(fdo,"<a href=\"#m%d\">%d</a> ",WD[i].abz[j],WD[i].abz[j]);
        fprintf(fdo,"</td></tr>\n",na);
    }
    fprintf(fdo,"</table>\n");
 
    na=0;
    fprintf(fdo,"<a name=\"m0\">\n");
    while((k=getw(fd,c))!=-1){
        if (k==1) {
            na++;
            fprintf(fdo,"<br><a name=\"m%d\">\n",na);
            }
        else fprintf(fdo,"%s ",c);
        }
    fprintf(fdo,"</body></html>\n");
    fclose(fd);
    fclose(fdo);
   getchar();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 16:21. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru