Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
mnevseravno
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 31
1

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

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

она не видит конца файла и зацикливается на 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2012, 22:23
Ответы с готовыми решениями:

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

Программа, считывающая телефонный номер, пока не достигнет конца файла
Как лучше осуществить алгоритм данной задачи, например такой input.txt...

Программа зацикливается
ВОПРОС: почему когда я ввожу &quot;надпись&quot;, идет бесконечный цикл? объясните пишу...

Программа зацикливается
Суть задания по коду видно, а проблема собственно вот в чем: ввел название,...

Программа зацикливается на строчке while
программа зацикливается на строчкеwhile ((c!= ' ') || (c!='\n') || (c!='\0')) ...

2
kazak
3061 / 2382 / 255
Регистрация: 11.03.2009
Сообщений: 5,438
Завершенные тесты: 1
05.10.2012, 07:49 2
Во-первых с должно быть типа int.
Во-вторых
Цитата Сообщение от mnevseravno Посмотреть сообщение
while ((c!=' ') && (c!='\n') && (c!='\0'))
while ((c!=' ') && (c!='\n') && (c!=EOF))
0
mnevseravno
0 / 0 / 0
Регистрация: 08.10.2011
Сообщений: 31
05.10.2012, 09:36  [ТС] 3
ага, спасибо) я попробую. А с точно типа int он считывает побайтово
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2012, 09:36

Программа зацикливается при вводе матрицы
Здравствуйте. Помогите, в программе какая то ошибка, не могу найти. Почему-то...

Программа зацикливается при разложении в ряд
Вылетает с ошибкой. В чем причина? #include &lt;stdio.h&gt; #include &lt;conio.h&gt;...

Зацикливается программа при проверке корректность ввода
Добавил в программу проверку на корректный ввод: flag=scanf(&quot;%d&quot;,&amp;l.num);...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru