首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

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

读取指定文件内容
我有一文本文件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

热点排行