怎样将一个.txt文件的数据写入.bin文件中

tanqiyingk 2013-09-25 03:36:04

我是用getc(fp)读取txt文件的数据
然后用putc()写入bin文件中的。写入的地方不用纠结,我就想知道怎样才能把
例如:txt文件中的这些数据 存放入bin文件中
...全文
1156 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
tony2278 2013-09-27
  • 打赏
  • 举报
回复
文件拷贝. http://blog.csdn.net/mangobar/article/details/11983351
tanqiyingk 2013-09-26
  • 打赏
  • 举报
回复
引用 11 楼 zhao4zhong1 的回复:
fputc(0xFF,fo);
谢谢,我是用了一个数组,然后用fwirte()写进去了
赵4老师 2013-09-26
  • 打赏
  • 举报
回复
fputc(0xFF,fo);
tanqiyingk 2013-09-26
  • 打赏
  • 举报
回复
引用 7 楼 zhao4zhong1 的回复:
#include <stdio.h>
FILE *fi,*fo;
char fni[260]="i.txt";
char fno[260]="o.bin";
int v;
int main() {
    fi=fopen(fni,"r");
    if (NULL==fi) {
        fprintf(stderr,"Can not open file %s!\n",fni);
        return 1;
    }
    fo=fopen(fno,"wb");
    if (NULL==fo) {
        fclose(fi);
        fprintf(stderr,"Can not create file %s!\n",fno);
        return 2;
    }
    while (1) {
        if (1!=fscanf(fi,"%d",&v)) break;
        fwrite(&v,4,1,fo);//这里的4可根据实际需要改为2或1
    }
    fclose(fo);
    fclose(fi);
    return 0;
}
谢谢!还有一个问题就是,怎么在我不需要写入数据的地方填上FF这个值呢。我需要一生成一个4M的bin就加入TXT的数据后,我在其它的地方都需要填上一个FF的值。
max_min_ 2013-09-25
  • 打赏
  • 举报
回复
引用 6 楼 tanqiyingk 的回复:
有没有人啊。
写的伪代码,自己再改改

//打开txt文件,
FILE *F= fopen(a.txt, "w");
//一行一行读文件,循环读,读到文件尾
while( getline( &buf, &size, F) != -1 )
{
//把读到的buf内容写进bin文件
  FILE *B = fopen(a.bin, "rb+");
  fwrite(buf, size, 1, B);
 //注意判断接口返回值 
}
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
推荐使用WinHex软件查看硬盘或文件或内存中的原始字节内容。 不要把 fopen("...","...");fscanf,fprintf,fclose //读时把\r\n替换成\n,写时把\n替换成\r\n;读到\x1a就设置EOF;读写的内容当字符看待 和 fopen("...","...b");fread,fwrite,fclose //不作以上替换,遇到\x1a仍继续读;读写的内容当字节看待 弄混了
赵4老师 2013-09-25
  • 打赏
  • 举报
回复
#include <stdio.h>
FILE *fi,*fo;
char fni[260]="i.txt";
char fno[260]="o.bin";
int v;
int main() {
    fi=fopen(fni,"r");
    if (NULL==fi) {
        fprintf(stderr,"Can not open file %s!\n",fni);
        return 1;
    }
    fo=fopen(fno,"wb");
    if (NULL==fo) {
        fclose(fi);
        fprintf(stderr,"Can not create file %s!\n",fno);
        return 2;
    }
    while (1) {
        if (1!=fscanf(fi,"%d",&v)) break;
        fwrite(&v,4,1,fo);//这里的4可根据实际需要改为2或1
    }
    fclose(fo);
    fclose(fi);
    return 0;
}
tanqiyingk 2013-09-25
  • 打赏
  • 举报
回复
有没有人啊。
tanqiyingk 2013-09-25
  • 打赏
  • 举报
回复
现在我读出的值是txt文件 ASCII码的值 然后把这些值写入了bin文件 1 31 0 30 0 30 \n 0A 怎样才能读出txt文件的100 也就是十六进制64 然后写入bin文件呢
牧童027 2013-09-25
  • 打赏
  • 举报
回复
文件尾用feof函数判断
tanqiyingk 2013-09-25
  • 打赏
  • 举报
回复
还有我怎么判断txt文件的结尾呢
牧童027 2013-09-25
  • 打赏
  • 举报
回复
如果是要将字符串当整数写入,你每次putc时需要将getc到的char减上48才行
tanqiyingk 2013-09-25
  • 打赏
  • 举报
回复
图片中我写入用得到了错误的值。本菜刚刚接触C语言。请懂的人指点下,谢谢

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧