C语言二进制文件随机访问 C语言文件追加实例 C语言打印图书目录实例 C语言二进制文件随机访问 /* randbin.c -- random access, binary i/o */ #include <stdio.h> #include <stdlib.h> #define ARSIZE 1000 int main() { double numbers[ARSIZE]; double value; const char * file = "numbers.dat"; int i; long pos; FILE *iofile; // create a set of double values for(i = 0; i < ARSIZE; i++) numbers[i] = 100.0 * i + 1.0 / (i + 1); // attempt to open file if ((iofile = fopen(file, "wb")) == NULL) { fprintf(stderr, "Could not open %s for output.\n", file); exit(EXIT_FAILURE); } // write array in binary format to file fwrite(numbers, sizeof (double), ARSIZE, iofile); fclose(iofile); if ((iofile = fopen(file, "rb")) == NULL) { fprintf(stderr, "Could not open %s for random access.\n", file); exit(EXIT_FAILURE); } // read selected items from file printf("Enter an index in the range 0-%d.\n", ARSIZE - 1); while (scanf("%d", &i) == 1 && i >= 0 && i < ARSIZE) { pos = (long) i * sizeof(double); // calculate offset fseek(iofile, pos, SEEK_SET); // go there fread(&value, sizeof (double), 1, iofile); printf("The value there is %f.\n", value); printf("Next index (out of range to quit):\n"); } // finish up fclose(iofile); puts("Bye!"); return 0; } C语言文件追加实例 C语言打印图书目录实例