在下面的代码中,我正在做以下事情:
- 使用 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];
}