• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Задача на работу с текстовым файлом

  • Автор темы Irondust
  • Дата начала
I

Irondust

Вобщем такая проблемка пишу программку, условие такое: из заданного текстового файла удалить все предложения, содержашие указанное слово. Разбивка оставшегося текста должна соответствовать максимальной заполненности строк.
Я тут кой чего написал только не работает почему то нифига <_<
[codebox]#include <fstream.h>
#include <iostream.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#define FNAME "test.txt\0"
#define FNAME2 "text.txt\0"
void main ()
{char fname[20]=FNAME;
char fname2[20]=FNAME2;
FILE *in;
FILE *out;
char obr[15];
char b[1]=" ";
char word[15];
char t[1]=".";
int s[50];
char c[1]=" ";
long kon[100];
long na4;
long tek2;
int m=1;
int k=1;
int i=1;
int n=0;
for (i=0;i<40;i++){s=0;}
i=1;
if ((in=fopen(fname,"rb"))==NULL)
{printf("ERROR OPENING FILE %s", fname);
getch ();
return;}

printf("WORD:");
scanf(" %s",obr);
fgetpos (in,&na4);
while (!feof(in)){

while (!feof(in)&& *b!=*t){fscanf(in,"%c",&:rolleyes:;}

fscanf(in,"%c",&c); //Это он типа ищет точки в тексте
fscanf(in,"%c",&c);
fgetpos (in,&kon);

i++;
*b=*c;
}

fsetpos (in,&na4);
for (m=1;m<i;m++){
while (!feof(in)&& ftell(in)!=kon[m]){
fscanf(in,"%s ",word);


if (strcmp(word,obr)==0){s[k]=1;//ищет совпадения в тексте и зано
printf("123");}} //сит в массив единичку
fscanf(in,"%c",&c);

fscanf(in,"%c",&c);
k++;}
k=1;
fsetpos (in,&na4);
if ((out=fopen(fname2,"wb"))==NULL)
{printf("ERROR OPENING FILE %s", fname2);
getch ();
return;}
for (n=1;n<i;n++){
while (!feof(in)&& ftell(in)!=kon[n]){
if (s[n]=0){fscanf(in,"s ",&word);//те предложения, у которых единичка
fprintf(out,"s ",word);} // не записывает в другой файл
fscanf(in,"%c",&c);
fscanf(in,"%c",&c);}}

fclose(in);
fclose(out);
getch ();}
[/codebox]
 
V

vrotmnenogi

Что за дикая смесь С и С++?
На каком языке нужна программа?
И еще не совсем понятно условие, что значит: "Разбивка оставшегося текста должна соответствовать максимальной заполненности строк"?
 
B

bizybiz

vrotmnenogi, а где ты смесь то увидел? По-моему к С++ можно отнести только первые три строки..
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!