如何用C语言实现读取文件特定位置内容并输出至txt文件

这是一个10000行的txt文件,需要打印出address后面方括号里的地址内容,输出到文件中。跪谢!没有代码也行,给思路就好!

第1个回答  2020-02-16
用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<L;i++){
if
(
strncmp(str+i,"address",7)==0)
{j=i+7;
break;};
}
for
(i=j;i<L;i++){
if
(str[i]=='[')
*i1=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<i2;i++)
{
j=i-i1-1;
add[j]=str[i];};
add[j+1]='\0';
printf("%s
",add);
return
0;
}
第2个回答  2012-12-24
while(1){
buf = fgets
if(feof()) break;

p = strstr("Address [", buf); /*查找"Address ["*/
if( p==NULL) continue; /*没找到则无处理*/
p=p+strlen("Address ["); /*将指针定位到地址的位置*/
while(*p!=']') {fputc(*p);} /*将地址输出,知道右括号*/
fputc('\n');
}

(这只是个思路,不是完整代码。省略了一些变量定义,参数)本回答被网友采纳
第3个回答  2012-12-22
我有用qt写的读取lrc歌词文件的东西,用的qt的函数。能实现你要的功能。如果你仅仅是是想把后面的内容弄出来,可以用批量字符替换工具replace试试
第4个回答  2012-12-20
你可以这样读 gets一行到一个字符串 然后从数字开始位置复制走 然后连续gets4行没用的信息 然后再循环
c语言没有直接定位的函数
相似回答