用fgets 一行行读入,读到EOF结束。
每读一行用 下面函数找到address 后面方括号 i1,i2 位置
void f1(char *str, int *i1, int *i2){
int i,j=0,L;
L = strlen(str);
if (L < 8) { printf("no address line\n"); *i1=0; *i2=0;};
for (i=0;i
}
for (i=j;i
if (str[i]==']') { *i2=i; break;}
}
}
从这行字符串中取出地址 str[i1+1] 到 str[i2-1], 写入文件。
调用例子:
main()
{
char str[400]=".......address..[123 bay street Apt. 5] abcdb ssks 567 ";
char add[80];
int i,j,i1,i2;
f1(&str[0],&i1,&i2);
printf("%d %d",i1,i2);
for (i=i1+1;i
printf("%s ",add);
return 0;
}
其实,你要完成的这项工作,用shell脚本或者其他什么脚本是最方便的。
你手里现在要是有linux机,或者有其他支持sed工具的环境也行。
sed -n 's/Address//p' txt.log > result.txt
然后再用一个类似的语句,把那串数字后面的东西滤掉就行了,你要是不会整,你把文件传我,我给你整
读文件只能从头读,如果需要读到特定的位置需要加一个判断
然后读文件
使用fopen函数,打开文件指针
使用fscanf读取文件内容
使用fprintf写入文件
具体用法跟普通的输入输出差不多