您的位置:

fseek在c语言,fseek在c语言中怎么用

本文目录一览:

C语言 文件指针 fseek

fptr = fopen(roominfo, "rb+"); //你的文件是以读写方式打开的

当一个文件以读写方式打开,从读文件切换到写文件或者相反操作,必须刷新文件缓冲区(就是把文件的修改写入磁盘),而fseek操作会引发文件缓冲区的刷新。在你的代码里fwrite以后,下次判断是fread,所以如果不刷新文件缓冲区,fread不会读取到写入的数据,而fseek(fptr, 0,SEEK_CUR);就是在不移动文件指针的情况下,把缓冲区数据写入文件,保证fread会读取到新数据,这是常用手段

c语言中fseek函数怎样指到文件末尾

fseek有三个参数,第1个是文件句柄,通过打开文件时得到;第2个就是移动的字节数,这个数可以是正的,就是向后(文件尾部)移动,也可以是负的,即向前(文件头部)移动;第3个参数指明从哪里移动,如果写SEEK_SET就是从文件头部移动多少字节,如果

C语言关于fseek函数。

中文文件要用TCHAR之类的多字节方法处理。

你的方法是把中文看成2进制一个字符一个字符的数据文件来处理,也是可以的,fseek工作完全正常,

问题是输出字符的显示,你可以显示每个字节的值,但不能显示成肉眼可识别的汉字。

putchar ( ch ); 可用于 ASCII字符。

你可以换成: printf("%02x ", 0xff ch ); 可以显示单个字节的码值。从输出的码值可以看出,程序没有问题,只是不能显示成肉眼可识别的汉字。

另外,如果是unicode中文文件,则文件头有不可见的文件类型区分码0xfe 0xff 或 0xff 0xfe 等等。

2个单个字节码,合成一个双字节码,有大端和小端文件问题,也许需要互相交换相邻2个字节,再显示成中文。