以下のコードでは、次のことを行っています。
- fp を使用してファイルを取得し、そのファイルで二重引用符で囲まれた文字列を検索します
- 残りのファイルを「NewData.txt」という名前の別のファイルに書き込みます
- 二重引用符で囲まれたすべての文字列が検索され、バッファ配列に配置されるまで、手順 1 と 2 を繰り返します。
しかし、私はこのエラーが発生しています、
./my_script: line 9: 27310 Segmentation fault ./a.out
コードのどこが間違っているのかわかりません....
char *read_quoted_string(char outbuff[], FILE *fp){
char *buffer[1000];
int ch;
int i;
int counter=0;
int increment=0;
int prev=ftell(fp);
fseek(fp, 0L, SEEK_END);
int lengthOfFile=ftell(fp);
fseek(fp,prev,SEEK_SET);
fprintf(stdout,"%d",lengthOfFile);
while(lengthOfFile>0){
while(EOF!=(ch=fgetc(fp)))
if(ch == '"') break;
for(i=0;EOF!=(ch=fgetc(fp));++i)
{
if(ch == '"') break;
outbuff[i] = ch;
}
outbuff[i]='\0';
///////////////////////////////////////
char filename3[] = "NewData.txt";
FILE *file3 = fopen ( filename3, "w" );
if(file3!=NULL){
while(EOF!=(ch=fgetc(fp)))
fputc(ch,file3);
}
fclose(file3);
buffer[increment]=outbuff;
increment=increment+1;
fp=file3;
prev=ftell(fp);
fseek(fp, 0L, SEEK_END);
lengthOfFile=ftell(fp);
fseek(fp,prev,SEEK_SET);
}
return buffer[increment];
}