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

Функция не возвращает в программу структуру C++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Кодировка UTF-8 http://www.cyberforum.ru/cpp-beginners/thread225409.html
Подскажите, как сделать, чтобы в файл писать буквы в кодировке utf-8? #include <stdio.h> #include <iostream> #include <fstream> using namespace std; int main() {
C++ не могу написать программу( нужно написать программу в вижал с++ по задаче. помогите пожалуйста! вот текст: Известно производство группы товаров за 1 и 2 кварталы текущего года. Вид каждого товара задан некоторым числовым кодом. Для товаров, производимых одновременно и в 1 и во 2 квартале, определить, увеличилось ли их производство и на сколько. Исходными данными задачи считать количество товаров, производимых в каждом... http://www.cyberforum.ru/cpp-beginners/thread225406.html
Составить программу, которая бы сформулировала и вывела на экран данный текстовый файл C++
неудается написать програмку, написать нужно на С: Дано любой текстовый файл. Составить программу, которая бы сформулировала и вывела на экран данный текстовый файл, в котором после каждой строки будет выведенная цифра, которая будет содержать значение количества букв в строке. Заменить все символы "(" и ")" на "" соответственно.
Компилятор C++
В какой программе вы бы посоветовали работать: Visial C++; MinGW Developer Studio; и т.д. И как в ней скомпилировать программу? (ни в одной не получается)))))
C++ обобщенные версии функций http://www.cyberforum.ru/cpp-beginners/thread225394.html
помогите с заданием: написать небольшую программу для тестирования обобщенных версий функций printf и scanf. Это по системному программированию.
C++ Возвращение максимального элемента в массиве Люди, помогите реализовать функцию int max(int n, int *a), где n-количество элементов в массиве а, а-массив. Функция возвращает индекс максимального элемента!!! ПОЖАЛУЙСТА!!!! подробнее

Показать сообщение отдельно
skafiend
0 / 0 / 0
Регистрация: 13.03.2010
Сообщений: 10
07.01.2011, 20:42     Функция не возвращает в программу структуру 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
147
148
149
150
151
152
153
154
155
#include <stdio.h>
#include <iostream>
#include <stdlib.h>
#include <string.h>
 
struct ABC
{
  char szChar;
  float fFreq;
};
 
ABC Frequency_Analysis(FILE *pAnyFile, int nCountSymbols);
 
main()
{
using namespace std;
 
// Переменная хранит количество элементов
const int nCountSymbols = 27;
 
// Создаем экземпляр структуры и обнуляем ее
ABC Enc[nCountSymbols] = {NULL};
ABC NotEnc[nCountSymbols] = {NULL};
 
FILE *pf = NULL;
 
// Открываем обычный файл для определения частот
pf = fopen("File.txt", "r");
 
cout << "Частоты обычного файла:" << "\n";
 
NotEnc[nCountSymbols] = Frequency_Analysis(pf, nCountSymbols);
 
// Закрываем обычный файл в функции
 
pf = NULL;
 
// Открываем файл c шифрованным сообщением
pf = fopen("EncryptedFile.txt", "r");
 
cout << "\n" << "Частоты шифрованного файла:" << "\n";
 
Enc[nCountSymbols] = Frequency_Analysis(pf, nCountSymbols);
 
// Закрываем шифрованный файл в функции
 
pf = NULL;
FILE *pf2 = NULL;
 
// Открываем файл с шифровкой на чтение
  pf = fopen("EncryptedFile.txt", "r");
 
// Открываем файл с расшифровкой на основе частот на запись
  pf2 = fopen("Total.txt", "w");
 
char cBuf = NULL;
 
// Дешифруем на основе частот
  for(int nCount = 0; !feof(pf); nCount++)
  {
    cBuf = fgetc(pf);
    for(int nCount2 = 0; nCount2 < nCountSymbols; nCount2++)
    {
      if (cBuf == Enc[nCount2].szChar)
        {
           cout << cBuf;
           fputc(NotEnc[nCount2].szChar, pf2);
           break;
        }
    }
  }
 
    fclose(pf);
    fclose(pf2);
 
}
 
// Функция осуществляет частотный анализ и возвращает результат 
//+ в программу в виде структуры
ABC Frequency_Analysis(FILE *pAnyFile, int nCountSymbols)
{
 
using namespace std;
 
// Количество символов в сообщении
int nBuf = 0;
 
// Создаем экземпляр структуры
ABC Enc[nCountSymbols];
char cBuf = NULL;
 
// Обнуляем структуру
        for(int nCount = 0; nCount < nCountSymbols; nCount++)
        {
          Enc[nCount].szChar = NULL;
          Enc[nCount].fFreq = NULL;
        }
 
// Считаем количества символов в файле и пишем в структуру
//+ Символ -> Количество
while (!feof(pAnyFile))
{
  nBuf++;
  cBuf = fgetc(pAnyFile);
  if ((int)cBuf != 32)
    {
     Enc[(int)cBuf - 97].szChar = cBuf;
     Enc[(int)cBuf - 97].fFreq = Enc[(int)cBuf - 97].fFreq + 1;
    }
  else
    {
     Enc[26].szChar = ' ';
     Enc[26].fFreq = Enc[26].fFreq + 1;
    }
}
 
// Считаем частоты вхождений
        for(int nCount = 0; nCount < nCountSymbols; nCount++)
        {
          Enc[nCount].fFreq = (Enc[nCount].fFreq / nBuf) * 100;
        }
 
// Временные переменные для хранения значений структуры
float fBuf = 0;
cBuf = NULL;
 
// Делаем перестановку элементов структуры шифра по убыванию частот
  for(int nCount = 0; nCount != nCountSymbols - 1; nCount++)
  {
    for(int nCount2 = nCount; nCount2 != nCountSymbols; nCount2++)
    {
      if (Enc[nCount].fFreq < Enc[nCount2].fFreq)
        {
          fBuf = Enc[nCount2].fFreq;
          Enc[nCount2].fFreq = Enc[nCount].fFreq;
          Enc[nCount].fFreq = fBuf;
 
          cBuf = Enc[nCount2].szChar;
          Enc[nCount2].szChar = Enc[nCount].szChar;
          Enc[nCount].szChar = cBuf;
        }
    }
  }
 
// Выводим структуру
        for(int nCount = 0; nCount < nCountSymbols; nCount++)
        {
          cout.precision(4);
          cout << Enc[nCount].szChar << " = " << Enc[nCount].fFreq << "\n";
        }
 
fclose(pAnyFile);
// Возвращаем структуру в программу
return Enc[nCountSymbols];
}
Не могу понять почему функция не возвратила значение. Посмотрел в отладчике переменные Enc и NotEnc забиты нулями и пустотой. Спасибо за помощь). Компилирую в Linux. g++ Version: 4:4.4.3-1ubuntu1
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 12:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru