Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2013, 14:16   #1
nikita2480
 
Регистрация: 02.12.2012
Сообщений: 6
По умолчанию С++ Работа с файлами. Нужно Исправить

Задание: Имеется три заданных текстовых файлов. Получить список имен файлов в порядке возрастания количества слов в них. Результат работы программы (вывод) поместить в отдельный текстовый файл

Считаю количество слов в файле, сортирую по убыванию, и записываю это в fail4 в порядке убывания.
получается
8
4
2

а нужно грубо говоря вот так
fail2
fail3
fail1

Недогоняю как это исправить.
Вот код:

do
{
printf("1-Файл 1\n 2-Файл 2\n 3-Файл 3\n 4-сортировка \n 5-запись результата в fail4 0-Выход\n");
menu=getch();
switch (menu)
{
case'1':
{
FILE *fp1 = fopen("fail1.txt","r");
if (NULL == fp1)
{
printf("\nОшибка открытия файла.\n");
break;
}
printf("\n Предложения: \n");
char str[1024];
str[0]='\0';
c=0;
while (!feof(fp1))
{
words[i][0]='\0';
fscanf(fp1, "%s",words[i]);

printf ("%s ",words[i]);
c++;
}
in1[0]=c;
printf ("\nКоличество слов в fail1 - ");
printf ("%d",in1[0]);
c=0;
fclose(fp1);
printf("\n\n");

break;
}

case'2':
{
FILE *fp2 = fopen("fail2.txt","r");
if (NULL == fp2)
{
printf("\nОшибка открытия файла.\n");
break;
}

printf("\n Предложения: \n");
char str[1024];
str[0]='\0';
while (!feof(fp2))
{
words[i][0]='\0';
fscanf(fp2, "%s",words[i]);


printf ("%s ",words[i]);
c++;
}
in1[1]=c;
printf ("\nКоличество слов в fail2 - ");
printf ("%d",in1[1]);

fclose(fp2);
printf("\n\n");
c=0;
break;
}
case'3':
{
FILE *fp3 = fopen("fail3.txt","r");
if (NULL == fp3)
{
printf("\nОшибка открытия файла.\n");
break;
}

printf("\n Предложения: \n");
char str[1024];
str[0]='\0';

c=0;
while (!feof(fp3))
{
words[i][0]='\0';
fscanf(fp3, "%s",words[i]);


printf ("%s ",words[i]);
c++;
}
in1[2]=c;
printf ("\nКоличество слов в fail3 - ");
printf ("%d",in1[2]);

fclose(fp3);
printf("\n\n");
break;
}
case'4':
{
int fl=0;
do
{
fl = 1;
for (int i = 0; i<2; ++i)
{
if ( in1[i] < in1[i+1] )
{
int d=in1[i];
in1[i]=in1[i+1];
in1[i+1]=d;
fl=0;
}}
}while (!fl);
printf("Результат \n");
for (i=0; i<3; ++i)
{
printf("%d \n", in1[i]);
}
break;
}
case'5':
{
fp4 = fopen("fail4.txt","w");

for (i=0; i<3; ++i)
{
fprintf(fp4, "%d \n", in1[i]);
}
printf ("\nФайл успешно записан");
fclose (fp4);
}
}
}
while(menu!='0');
return 0;
}
nikita2480 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужно исправить ошибку в программе работы с файлами. ameks94 Паскаль, Turbo Pascal, PascalABC.NET 2 25.11.2012 23:36
C++ Структуры и работа с файлами(исправить программу) scrinn Помощь студентам 3 04.06.2012 18:56
Pascal (Работа с файлами) как исправить ошибку Natsu Помощь студентам 9 28.02.2010 20:24