CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

如何在写文件的时候,将文件的长度截短

楼主jf_jf()2006-03-01 18:31:07 在 VC/MFC / 基础类 提问

原来有一个文件,比如长度是2048字节,现在打开此文件,移动指针到100的位置,再写入200字节,此时不再需要后边的文件内容,即把文件长度截短为300字节,该如何处理?  
   
  char   str[1024]="12345678890";  
  FILE*   fp;  
  fp=fopen("test.dat","w+b");  
   
  fseek(fp,100,SEEK_SET);  
  fwrite(str,1,200,fp);  
   
    //   此处如何截短文件的长度为100+200=300字节呢?  
  fclose(fp);  
  问题点数:20、回复次数:5Top

1 楼cnwolf(独狼)回复于 2006-03-01 19:09:56 得分 3

文件是流,没有好办法  
   
  把文件内容读出来,重新创建Top

2 楼Mackz(在相互)回复于 2006-03-01 19:47:53 得分 6

SetEndOfFile    
   
  The   SetEndOfFile   function   moves   the   end-of-file   (EOF)   position   for   the   specified   file   to   the   current   position   of   the   file   pointer.  
   
   
  Remarks  
  This   function   can   be   used   to   truncate   or   extend   a   file.   If   the   file   is   extended,   the   contents   of   the   file   between   the   old   EOF   position   and   the   new   position   are   not   defined.  
  Top

3 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-01 22:48:27 得分 5

_chsize(fileno(fp),300);Top

4 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-03-01 22:49:59 得分 5

API:SetEndOfFile  
  Or   CFile::SetLengthTop

5 楼BombZhang(我当大哥很久了)回复于 2006-03-01 22:58:56 得分 1

你从100的位置写了以后原文件中100以后的值就已经被砍掉了,此时文件的长度就是300Top

相关问题

  • 我的CString 变量的长度被截短了!
  • 文件长度读取
  • 如何在创建一个文件的时候,就可以使其具有很大的长度
  • 改变文件流的长度
  • 判断2进制文件的长度?
  • 如何取得WAVE文件的长度?
  • 文本文件的行长度问题
  • 怎么取得文件的长度?
  • 如何获取.mp3文件的长度?
  • 如何获得文件长度??

关键词

  • 文件
  • 截短
  • 长度
  • fp
  • position

得分解答快速导航

  • 帖主:jf_jf
  • cnwolf
  • Mackz
  • vcmute
  • DentistryDoctor
  • BombZhang

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo