Segmentation fault (core dumped) Си
Задание: Дан текстовый файл. Записать в новый текстовый файл все строки исходного файла, которые в качестве фрагмента содержат строку Str
В результате выдает ошибку - Segmentation fault (core dumped)
#include <stdio.h>
#include <string.h>
int main()
{
FILE *file = fopen("test.txt","r");
FILE *out = fopen("out.txt","w");
open(file);
char str[4][100];
char str1[100],str2[100];
char *istr;
int j,i;
while(!feof(file))
for(int i=1;i<=4;i++)
{
fscanf(file,"%s",&str[i]);
}
printf("Str - ");
gets(str1);
open(out);
j=1;
for(i=1;i<=4;i++)
{
istr = strstr (str[i],str1);
if( istr!= NULL )
{
str2[j]=str[i];
j=j+1;
}
}
int n=j;
printf("%d",n);
for(j=1;j<=n;j++)
fprintf(out,"\n%s",str2[j]);
close(file);
close(out);
return 0;
}
Ответы (1 шт):
Автор решения: Harry
→ Ссылка
Не понимаю, что вы вообще делаете...
FILE *file = fopen("test.txt","rt");
FILE *out = fopen("out.txt","wt");
char str[100];
// Чтение str допишите сами
char buf[1024]; // Максимальный размер определите сами
while(fgets(buf,1024,file))
if (strstr(buf,str))
fprintf(out,"%s",buf);
fclose(out);
fclose(file);
Этого вполне достаточно. И еще прочтите это.