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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2011, 10:42   #1
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию Не могу найти ошибку... хотя я ее нашел... но не знаю как исправить))) ( удаление строки из файла)

мой Код:
Код:
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main ()
{
clrscr();
char c;
int i=0;
FILE *f1;
FILE *f2;
char putb[80], stroka[80], putb2[80];
printf ("vvedite putb k failu, kotopbIu HygHo otkPbItb\n");
scanf("%s", putb);
printf ("vvedite stroku, kotopbIu HygHo ydalutb\n");
scanf("%s",stroka);
printf ("vvedite putb2 k failu, kotopbIu HygHo otkPbItb\n");
scanf("%s", putb2);
if ((f1=fopen(putb,"r")) !=NULL)
if ((f2=fopen(putb2,"w")) !=NULL)


while ((c=fgetc(f1))!=EOF)
{ if (stroka[0]==(c=fgetc(f1)))
  
  while (stroka[i]!='\0')

  {if (stroka[i+1]==(c=fgetc(f1)))
  i++;
  else fputc(c,f2);
  }
  else fputc(c,f2);}
  
  fclose(f1);
  fclose(f2);

  if (remove(putb) == 0)
   printf("Fail ydaleH\n",putb);
else
   printf("He ydaets9 ydaLutb");

   if(rename(putb2, putb) == 0)
    printf("proizoIIIlo pereimenoVanie iz %s B %s");
    else
    printf(" He ydaloCb");

  getch();
  return 0;
}
Ошибка в этих строчках :

while (stroka[i]!='\0')
{if (stroka[i+1]==(c=fgetc(f1)))
i++;
else fputc(c,f2);


В чем суть программы расскажу вкратце:
Мы задаем строку с консоли, и 2 файла ( их путь и имя т.е)
программа должна найти совпадение эталонной строки в файле ( 1 ) и перенести во второй файл все содержимое 1-ого файла кроме эталонной строки.
Запара в том, что я задал условие, если 0-ой элемент строки ( т.е 1-ый) не совпадает с символом из файла, то этот символ сразу заносится в файл ( 2 ), иначе ( если совпадает) запускается следующий цикл ( действующих пока не будет конец эталонной строки) если и-ый элемент строки равен символу из файла то i ++ ну и т.д т.е сравниваем посимвольно дальше, иначе мы должны занести в файл (2 )символ который совпал с 0-ый символом из строки и символ который прервал наш цикл, т.е символ несовпавший со 1-ым символом эталонной строки. ( как это сделать?) если надо еще что-то уточнить подскажите

Последний раз редактировалось dykatob; 03.06.2011 в 10:47.
dykatob вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, строки. Не могу найти ошибку в коде. Liam_ Помощь студентам 6 11.05.2011 19:29
не могу найти ошибку,точнее как исправить!(Задание с файлами) Ксения Вадимовна)) Помощь студентам 0 06.12.2010 22:39
Как найти ошибку(строки) Nafanja20 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 14 21.05.2010 21:42
как правельно составить запрос к базе данных? не могу найти ошибку... Человек_Борща SQL, базы данных 6 27.02.2010 17:22