文件结束符具体是什么东东? 嗯~~能读到文件结尾符么?有么?以前DOS下的TXT文件好像有,用PCTOOLS能看到一些并非TXT的文档被标注了不少EOF标志,现在应该没有,文件是否结尾是由句柄指向的位置和文件大小决定的,你用eof()来判断是否结尾,在windows中EOF被定义为-1,并非是文件中一个实际的符号。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果是文本文件,读到文件结束符表示文件结束(我猜应该是‘\0’)。如果是二进制文件……searph说了。看起来你大概是用文本方式读二进制文件吧。二进制文件中任何字符都有可能,而文本文件的正文是不会出现0的。 我记得在上个世纪DOS的TXT文件中以0xff字符作为结束符 你用什么方式打开文件的?fopen, open, 还是 Windows API CreateFile?应该不用关心什么是结束符的。 结束符是Ctrl+Z,ASCII码是26。不过这个标识只对文本文件有效,而且是用传统的读写方法才起作用。现在它的作用是越来越小了。 GoodHope 兄说的对,其实用二进制方式读写就行了 如果是二进制文件,用feof()判断 用 什 么 语 言 写 的 , 如 果 是 C 语 言 那 feof() 应 该 能 判 断 , 如 果 有 循 环 , 则 多 循 环 一 次 。 我给你提供一个方案: 在你保存数据时先保存一个数据的长度如: CFile MyFile; int DataLength; DataLength=sizeof(s); ..... MyFile.Write(DataLength,sizeof(DataLength));再保存你的数据: 然后在读取得数据的时候先取得一个数据的长度: MyFile.Read(DataLength,sizeof(DataLength)); char* s=new char[DataLength+1]; MyFile.Read(s,DataLength); s[DataLength+1]='\0';//确保最后一个字节为结束符...... 无论是二进制还是文本,都可以用feof()来检测是否到结尾。 TCP网络:检查当前网络buffer中是否已经全部接收完成 IOCP_API之TCP服务器编程 Edit控件的光标问题? CHeaderCtrl 自绘丢失 XP 风格 CControlBar 停靠状态下调整大小 消息机制的提问 请问:别人程序的一个对话框上有2个edit控件,我已找到这2个控件窗口的hwnd,但是设置文本却设置不上? 关于按钮同时按下的消息传递,高手请进~~~~~ 另外一个程序的SysListView32空间list,如何通过PostMessage发送消息,选中所有行? 如何编程实现模块间的连接? 是不是很难:控制框架问题? 关于远端控制程序快速传输客户端屏幕的问题!
如果是二进制文件……searph说了。看起来你大概是用文本方式读二进制文件吧。二进制文件中任何字符都有可能,而文本文件的正文是不会出现0的。
在你保存数据时先保存一个数据的长度如:
CFile MyFile;
int DataLength;
DataLength=sizeof(s);
.....
MyFile.Write(DataLength,sizeof(DataLength));
再保存你的数据:
然后在读取得数据的时候先取得一个数据的长度:
MyFile.Read(DataLength,sizeof(DataLength));
char* s=new char[DataLength+1];
MyFile.Read(s,DataLength);
s[DataLength+1]='\0';//确保最后一个字节为结束符
......