c语言 将某个文本文件的第m行到第n行取出形成一个新文件.

c语言 将某个文本文件的第m行到第n行取出形成一个新文件.,第1张

楼主,其实有时候计数不一定要在文件内计数,可以开辟一个变量计数,这样你可能会方便很多,然后我按照一行最长500字符,具体看你文件修改。

#include<stdio.h>

#include<stdlib.h>

#define max 500

int main()

{   

FILE *fp,*fpx

char yh[max]

int n,m,i=0

scanf("%d%d",&n,&m)

fp=fopen("d:\\test.txt","r")

fp=fopen("d:\\test1.txt","w+")

if(NULL==fp)

{

printf("文件读取失败!")

exit(1)

}

while(fgets(yh,max-1,fp))

{

i++

if(i>=n && i<=m)

{

fputs(yh,fpx)

   rewind(fpx)

     printf("%s\n",yh)

}

return 0

}

  fclose(fpx)

fclose(fp)//关闭文件流

return 0

}

#include

"stdio.h"

#include

"string.h"

void

main()

{

int

n

FILE

*fin

char

s[25]

fin=fopen("c:\\a.txt","r")

fgets(s,25,fin)/*用fgets读第一行到数组s中*/

n=strlen(s)

fseek(fin,n+1,SEEK_SET)/*将文件指针移到下一行*/

fgets(s,25,fin)/*读取第二行的字符串*/

printf("%s",s)

}

这个是我写的一个,如果你想读到第n行的话,用一个for循环控制使文件指针移到第n行就行了

#include<stdio.h>

//从文件p中接收第n行字串,保存在str中

//假设一行的文本内容不超过1000字符,如果估计超过,请自行修改函数中的1000

//如果打不开文件,返回NULL

//如果文件不足n行,返回NULL

//如果正获得正常数据,返回str的地址

char *getfileline(char *p,int n, char *str){

FILE *fp

int i

if ((fp=fopen(p,"r"))==NULL){

printf("打开文件错误\n")

return NULL

}

for(i=1i<ni++)

if ((fgets(str,1000,fp))==NULL) {

fclose(fp)

return NULL

}

fgets(str,1000,fp)

fclose(fp)

return str

}

int main(){

char p[1000]

getfileline("d:\\temp.txt", 10, p)

puts(p)

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11988138.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存