读书人

读取指定文件内容,该如何解决

发布时间: 2012-02-23 22:01:35 作者: rapoo

读取指定文件内容
我有一文本文件1.txt
[软件版本01]
[支持硬件版本信息]
硬件版本总数=2
硬件版本1=YDJ300-ZD-001
硬件版本2=YDJ300-ZD-002

[模块信息]
模块数=5
模块1=YDJ200M01V.yw, 01V, Y
模块2=YDJ200M02V.yw, 01V, Y
模块3=YDJ200M03V.yw, 02V, Y
模块4=YDJ200M04V.yw, 02V, N
模块5=YDJ200M05V.yw, 03V, Y

现在要把1.txt的如下内容读到2.txt中去 如何做啊
[软件版本01]
[支持硬件版本信息]
硬件版本总数=2
硬件版本1=YDJ300-ZD-001
硬件版本2=YDJ300-ZD-002


[解决办法]
FILE *fp1,*fp2
char *buf=(char *)malloc( size_num);//size_numw为需要读取的字节数
if(!(fp1=fopen( "1.txt ",rb))
printf( "open1 erro! ");
if(!(fp2=fopen( "2.txt ",ab))
printf( "open1 erro! ");

fread(buf,1,size_num,fp1); //从1.txt种以二进制读取文件内容

fwrite(buf,1,size_num,fp2);//将读取的内容追加到2.txt
[解决办法]
不怕麻烦的话,可以用fgets一行一行地读
然后fprintf一行一行地存到2.txt中去
char *fgets(char *str, int num, FILE *fp)
int fprintf(FILE *fp, char *format,…)
[解决办法]
呵呵!大家可能忘记了设定fp位置的函数了吧!估计用下面的方法应该可以得!

fseek(fp1,o,SEEK_SET)//将fp1指向文件开始的位置

fseek(fp1,o,SEEK_END)//将fp1指向文件结尾的位置

计算两次fp1之的变化量就是文件的大小!
[解决办法]
就用fread没错,需要的字节数用ftell计算,先fseek到SEEK_END,ftell获得大小后再fseek到SEEK_SET,然后fread

读书人网 >C语言

热点推荐