c语言中fwrite的问题

fwrite操作后是否会将游标向后移动size*count位呢?还有我看别人的代码,fread和fwrite的时候总是用个while循环,目的是如果一次没有读出/写入规定... fwrite 操作后是否会将游标向后移动size*count位呢?
还有我看别人的代码,fread和fwrite的时候总是用个while循环,目的是如果一次没有读出/写入规定的长度,就在循环体内继续写入,这种写法有没有必要,fread/fwrite会不会在一次写入未完成的时候中断并正常返回呢?就是说int c=fread(xxx, 10,10, fp), c有没有可能<100但是>0?
展开
 我来答
金色潜鸟
2013-12-19 · TA获得超过3.2万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:5753万
展开全部
fwrite 操作后会把文件指针位置 向后 移动size*count字节。接着再fwrite就从这个当前位置起写。

while循环里,例如读1个结构,写一个结构,一直到读到 文件结束符 EOF为止。

这种写法有没有必要看情况决定。例如,一个结构就是一个学生的成绩单,但一开始并不知道文件里一共有多少学生,那么用这种循环读的方法,就可以计数,可以动态分配单元。
计数器初始化为0。成功读入1个结构,就把计数器加1。直到fread()失败--返回EOF。

int c=fread(xxx, 10,10, fp), c有没有可能<100但是>0。 有可能。所以可以 通过 c 是否等于 100
来判断 是否成功,是否合理, 并采取措施。
例如,有一个题目,是读入1个文件,平均地拆成3个文件输出,再读入这3个文件,合成1个文件。
因为文件的字节总数,未必是3 的倍数,所以 想读的个数和真正读到的个数就有可能不同。要使拆开的文件再合起来,与原文件一模一样,就要用到c。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式