-
Notifications
You must be signed in to change notification settings - Fork 1
/
FrequencyData.h
65 lines (60 loc) · 1.27 KB
/
FrequencyData.h
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
int charactersFrequency(int *data, FILE *file);
int *initData();
void printData(int *data);
void dataToFile(const int *data, FILE *read, float cr);
float fileToData(int *data, FILE *read);
int *initData()
{
int *dictonary = malloc(sizeof(int) * 113);
for (int i = 0; i < 113; i++)
dictonary[i] = 0;
return dictonary;
}
int charactersFrequency(int *data, FILE *file)
{
char c;
int i = 0;
while ((c = fgetc(file)) != EOF)
{
data[c - '\n'] = data[c - '\n'] + 1;
i++;
}
fclose(file);
return i;
}
void printData(int *data)
{
for (int i = 0; i < 113; i++)
printf("%c : %d\n", i + '\n', data[i]);
}
void dataToFile(const int *data, FILE *write, float cr)
{
fprintf(write, "%f\n", cr);
for (int i = 0; i < 113; i++)
{
int temp = data[i];
fprintf(write, "%d\n", temp);
}
fclose(write);
}
float fileToData(int *data, FILE *read)
{
char line[100];
int num;
float cr;
int index = 0;
while (fgets(line, sizeof(line), read))
{
if (index == 0)
{
sscanf(line, "%f", &cr);
index++;
continue;
}
sscanf(line, "%d", &num);
data[index - 1] = num;
index++;
}
fclose(read);
return cr;
}