Text: |
ФІО = Горбаченко В.А.
Запитання:/*
* НА DevCPP не РАБОТАЕТ КОРРЕКТНО!!!!
* Заданий символьний файл f1, який складається із слів
* (словами називаються символи, відокремлені пробілами).
* Утворити файл f2, записати в нього:
* в) кількість слів файлу f1,
* що складаються з одного, двох і т.д. символів
Висновок: в цій лабораторній роботі я використав дві змінні вказівники
на тип FILE. Одна - для вхідного файла, інша для вихідного відповідно.
Програма циклічно зчитує кожне слово з файлу і визначає кількість літер
(далі count) і поетапно інкрементує масив виразом mas[count]++.
Після прочитання першого файлу, в другий файл записує значення, які
зберігаються в масиві.
*/
#include <iostream>
#include <conio.h>
#include <stdlib.h>
#define n 100
using namespace std;
int main(){
FILE *f1, *f2;
f1 = fopen("z5_16v.in","r");
int c,count = 0;
int mas[n];
for ( int i = 0 ; i < n ; i++)
{
mas[i]=0;
}
if ((f1)){
while ( !feof(f1) )
{
fscanf(f1,"%c",&c);
if (
(c!=' ')
&&
(c!=',')
&&
(c!='.')
&&
(c!=13)
&&
(c!=10)
&&
(!feof(f1))
)
{// true
count++;
}
else
{// false
if (count)
{
mas[count]++;
count=0;
}
}
// cout<<char (c)<<endl;
}
fclose(f1);
f2 = fopen("z5_16v.out","w");
for (int i = 1 ; i < n ; i++ )
{
fprintf(f2,"%i = %i\n",i,mas[i]);
// if (mas[i]>0) cout<<i<<" = "<<mas[i]<<endl;
}
fclose(f2);
}
else fprintf(stderr,"\n -> Error : in file not found!!!\n");
system("PAUSE");
return 0;
}
====================================
|