去字符位置的问题
10M的文件按0.5M的大小读如缓存。查找该文件里指定字符的位置。打印在屏幕或保存为一个新文件。我想这样。但是还不行。
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <memory.h>
#include <string.h>
void main()
{
char buf1[5000];
char buf2[5000];
char buf3[5000];
FILE* zk1=NULL;
FILE* zk3=NULL;
char* z1=NULL;
char* z2=NULL;
char* z3=NULL;
int a1=0;
int a2=0;
int a3=0;
/*char _char;/*指定要查找的字符内容*/
/*char tmp;*/
zk1=fopen("c:\\test.txt","r");
fseek(zk1,0,SEEK_END); /*社定资料的位置*/
a1=ftell(zk1);
fseek(zk1,0,SEEK_SET);
memset(buf1,'\0',sizeof(buf1));
memset(buf2,'\0',sizeof(buf2));
memset(buf3,'\0',sizeof(buf3));
fread(buf1,a1,1,zk1);/*buf1是将要放文件内容的空间*/
/*a1是文件内容的长度
为一次
test为文件被读内容的起始点指针 */
fclose(zk1);
/* 至此读test文件结束,下面开始字符串操作 */
z3=strstr(buf1,"cad");/*查找_char所在的位置 */
printf("%d\n",a2);
strcpy(buf3,z3);/*把_char后面的文件名取出来 */
printf("%s\n",buf3);
//zk3=fopen("c:\\ddr.txt","w");/*用这个文件名建立新文件 */
zk3=fopen((char*)buf3,"w+");
z3=strstr(buf1,"cad");/*再次查找_char所在的位置 */
//fwrite(buf3,strlen(buf3),1,zk3);
fwrite(buf1,z3-buf3,1,zk3);
printf("%s\n",buf1);
fclose(zk3);
}