0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 31
1

Программа не доходит до конца файла и зацикливается

04.10.2012, 22:23. Показов 1344. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
она не видит конца файла и зацикливается на 21 или на 30 строчке... Программа должна удалить все слова из файла, начинающиеся на согласную. Пишу по алгоритму, который предложил преподаватель.
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
#include <stdio.h>
#include <string.h>
 
int alg (FILE *fp, FILE *fpout)
{
 int i;       int flag;
 char c;
 char a[12]={'A','a','E','e','I','i','O','o','Y','y','U','u'};
 
while (!feof(fp))
 if (!feof(fp))
  {
   c=fgetc(fp);
   flag=0;
   for(i=0; i<12;++i)
   {
    if(c==a[i]) flag++;
   }
 if(flag>0)
 {
  while ((c!= ' ') && (c!='\n') && (c!='\0'))
  {
   fprintf(fpout,"%c",c);
   c=fgetc(fp);
  }
  fprintf(fpout,"%c",c);
 }
 else
 {
  while ((c!=' ') && (c!='\n') && (c!='\0'))
   c=fgetc(fp);
  fprintf(fpout,"%c",c);
 }
 }
return 0;
}
 
int main()
{
  FILE *fp;
  FILE *fpout;
  char fname[20];
 
  puts("name 1 file: \n");
  gets(fname);
  if ((fp=fopen(fname,"r"))==NULL)
  {
   perror(fname);
   return 1;
  }
 
  puts("name 2 file: \n");
  gets(fname);
  if ((fpout=fopen(fname,"w"))==NULL)
  {
   perror(fname);
   return 1;
  }
 
alg(fp,fpout);
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.10.2012, 22:23
Ответы с готовыми решениями:

Функция feof(stream) зацикливается и не доходит о конца файла
Здравствуйте Проблема в том что функция зацикливается,не доходит до конца файла вот код void...

Программа не доходит до конца
Программа не доходит до конца.В чем может быть ошибка? Иногда запрашивает ввод только а и...

Цикл не доходит до конца
Здравствуйте! Не могу разобраться, почему цикл for не доходит до конца. Ниже я привел код, за любой...

Прогресбар не доходит до конца
Есть код: private void timer1_Tick(object sender, EventArgs e) { ...

2
3565 / 2712 / 347
Регистрация: 11.03.2009
Сообщений: 6,246
05.10.2012, 07:49 2
Во-первых с должно быть типа int.
Во-вторых
Цитата Сообщение от mnevseravno Посмотреть сообщение
while ((c!=' ') && (c!='\n') && (c!='\0'))
while ((c!=' ') && (c!='\n') && (c!=EOF))
0
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 31
05.10.2012, 09:36  [ТС] 3
ага, спасибо) я попробую. А с точно типа int он считывает побайтово
0
05.10.2012, 09:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.10.2012, 09:36
Помогаю со студенческими работами здесь

Дефрагментация не доходит до конца
Когда делаешь дефрагментацию, всегда хочется увидеть идеальную непрерывную синюю полосу, а после...

Не доходит скролл до конца Jscrollpane
Здравствуйте, вот пример http://dodi.vv.si . Скролл не доходит до конца, я так его вроде как...

Звук на ноутбуке. Регулятор звука не доходит до конца
Имеется ноутбук MSI cx620 Вместе с ним имеется и проблема с громкостью звука. Еле слышно звук на...

Как упросить код и остановить когда доходит до конца
Привет всем, подскажите как упросить код что бы 537 раз не писать exc(). И как его остановить когда...

В функции генерирования матрицы из случайных чисел код не доходит до конца
Здравствуйте всем! Помогите разобраться, написал программу, которая умножает две матрицы, но в...

Текст на мобильных устройствах не доходит до конца блока и переносится раньше
Сайт s-vanna.ru некорректно открывается на андроиде. Текст на обычных устройствах разъезжается по...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru