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

tanqiyingk 2013-09-25 03:36:04

我是用getc(fp)读取txt文件的数据
然后用putc()写入bin文件中的。写入的地方不用纠结,我就想知道怎样才能把
例如:txt文件中的这些数据 存放入bin文件中
...全文
1066 13 打赏 收藏 转发到动态 举报
写回复
用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语言。请懂的人指点下,谢谢
1.linux系统介绍 以windows为内核的操作系统有哪些:win10   win8   win7  xp  系统    windows server 以linux为内核的操作系统有哪些:centos  ubuntu  debian   windows和linux  linux:服务器   安全    稳定 高效    windows:办公  家用  2.安装linux注意事项 对centos系统 的基本使用   有哪些文件夹   对文件/文件夹 进行操作  创建 删除  修改 移动 复制   写入 home 存放所有用户文件的根目录  soft :安装软件 cd  ll mkdir 创建文件  touch 空文件  echo sdsd>a.txt       vi a.txt vi c.txt  打开文件  按下i键  改为写入的模式    写完之后保存: 先按下esc 按键再按下:w 保存 :q退出  :wq    写完之后不想保存 强制退出  esc  :q! 删除文件/文件夹 rm -rf a.txt  b.txt rm -rf soft 复制 如果复制文件 cp  要复制的文件名   复制出来的文件名子    cp  a.txt   a1.txt 如果复制的是文件夹的 cp -r soft/   soft1 展示一个文件的内容 cat  移动文件  mv  temp1   temp2 重命名 mv  temp1   temp2 查找: find /(查找的路径)  -name   *.txt    b 清屏  clear tab 按键 可以帮助我们把输入的内容补全   3.配置局域网  需要通过ssh软件远程操作linux系统 远程操作centos系统  在windows操作系统通过一款软件来远程操作虚拟电脑的centos系统  ssh软件: xshell  secureCRT 第一步在win10系统下载并且安装ssh软件 secureCRT    第二步:只要知道centos系统所在电脑的公网IP  登录账户和密码      /  win10和centos系统所在的两台电脑在同一个局域网内  局域网IP  登录账户和密码 第三步:centos系统 进行局域网的设置 往网卡写入一些数据   win10写入的方式:桌面的化操作和centos系统写入的方式是不一样的  ip 网关 子网掩码 NM_conteolle。。。 命令  找到往网卡写入数据文件    重新启动网络服务 开启22端口   重启防火墙服务 网络桥接网络  *************************端口是否开启  4.配置外网  下载软件1.下载并且安装到系统 node.js环境   npm install bootstrap   默认的镜像库 centos系统    yum install  服务名     默认的镜像库  2.自己下载服务  wget 服务的网络地址 自己单独安装  比较灵活 安装难度大 windows系统  exe文件 linux       rpm包

69,382

社区成员

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

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