在文件C中写入元素数组之后,为什么最后一个元素会被复制

时间:2016-11-24 17:28:10

标签: c arrays file printing duplicates

我有一个小程序用于测试,我只需用一些短裤填充数组。然后我在File中写这个数组。然后我打印文件。

代码是这样的:

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#define BUFFERLENGTH 10

short bufo[BUFFERLENGTH];


int main(int argc, char **argv){    

FILE * ff;
bufo [0]= 1;
bufo [1]= 2;
bufo [2]= 3;
bufo [3]= 4;
bufo [4]= 5;
bufo [5]= 6;
bufo [6]= 7;
bufo [7]= 8;
bufo [8]= 9;
bufo [9]= 10;
short s;
printf("Ho \n");

if ((ff = fopen("prueba1", "ab+")) == NULL){
            perror("Abriendo mal"); 
        }
        fwrite(bufo, sizeof(short) , 10, ff);
        fclose(ff);
        printf("FRONTERA \n");

if ((ff = fopen("prueba1", "ab+")) == NULL){
            perror("Abriendo mal"); 
        }
        while(!feof(ff)){
         fread(&s,sizeof(short), 1, ff);
         printf("%u \n",s);

        }

} 

在此之后我想看到这个输出:

1
2
3
4
5
6
7
8
9
10

但相反,我明白了:

1
2
3
4
5
6
7
8
9
10
10

为什么我两次获得最后一个元素?

0 个答案:

没有答案