Chinaunix首页 | 论坛 | 博客
  • 博客访问: 988049
  • 博文数量: 158
  • 博客积分: 4380
  • 博客等级: 上校
  • 技术积分: 2367
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-21 10:45
文章分类

全部博文(158)

文章存档

2012年(158)

我的朋友

分类: C/C++

2012-11-21 10:21:57

#include

int main( void )
{
    FILE* fp = fopen( "D:\\test.txt", "r+" ); // 文件内容:12345

    char c;
    fread( &c, 1, 1, fp ); // 函数返回1,c为'1' --- 也就是一切正确
    // fseek(fp,0,SEEK_CUR); --- []和[]说加上这一句就好了

    fwrite( "a", 1, 1, fp ); // 函数返回1 --- 也就是一切正确

    fclose( fp ); // 函数返回0 --- 也就是一切正确,然而文件内容仍然为 12345 而没有变为 1a345
    return 0;
}

 

阅读(2080) | 评论(8) | 转发(0) |
给主人留下些什么吧!~~

网友评论2012-11-21 10:24:10

狂沙
不仅仅是这样。这几天我可被这个东西害苦了。竟然偶尔(大家注意拉!)错误。 fseek(fp,m_nLOffsetOfFile+iShu*m_nLHeng*m_nPerCellSize+iHeng*m_nPerCellSize,
0);
fread(buffer,m_nPerCellSize,1,fp);而且我这样用的。用文件比较工具,有的地方(我操作好几百个)出错,有的地方竟然没有!错误现象:最后几个字节竟然被该动了!
换回API就没有问题。
微软不地道!

网友评论2012-11-21 10:24:02


都只出现在文本文件里面

网友评论2012-11-21 10:23:54

芥之舟
是标准输入输出的问题,输入输出不能交叠进行
如果需要的话应该在中间插入fseek或这fflush之类的操作

网友评论2012-11-21 10:23:46

局部变量
但是是在fopen的文档里面

网友评论2012-11-21 10:23:37

局部变量
居然有规定, 可好像msdn上没写, 这个问题太容易出了