全部问题 > 当前问题

打开方式为wb 为什么还会被覆盖?

如题,wb+不是新建一个同名文件再写入吗?

ki 2016-11-30 16:29:37

共 1 个回答

最佳答案

2016-11-30 18:18:22

有一句这个 文件位置指针回到文件开头的语句:  rewind(pf);         


问题来自: 文件的输入和输出
有以下程序
#include <stdio.h>
main()
{ FILE *pf;
  char *s1="China",*s2="Beijing";
  pf=fopen("abc.dat","wb+");
  fwrite(s2,7,1,pf);
  rewind(pf);          /*文件位置指针回到文件开头*/
  fwrite(s1,5,1,pf);
  fclose(pf);
}
程序的运行结果是 ______ 。
A. China
B. Chinang
C. ChinaBeijing
D. BeijingChina
答案:B
解析:首先向文件输入Beijing,然后回到开头,fwrite(s1,5,1,pf); 输入的时候都是有起始和结束的位置的,限定了字符的个数的,再输入China。这时Beijing的后两个字符仍然没有被覆盖,因此选B。