用fread和fwrite讀寫文件
知識
08-03
ANSI C文件系統提供fread()和fwrite()兩個函數,用於讀/寫長於一位元組的數據類型。這兩個函數允許讀/寫各種類型的數據塊。它們的原型是:
- size_t fread(void *buffer,size_t num_bytes,size_t count,FILE *fp);
- size_t fwrite(const void *buffer,size_t num_bytes,size_t count,FILE *fp);
對fread()而言,buffer是接收讀入數據的內存區的指針。 對fwrite()而言,buffer是寫入到那個文件的信息的指針。
count的值確定讀/寫多少項,每項長度等於num_bytes。
fp是指向事先打開的流的指針。
正常情況下,fread()返回讀入的項數,fwrite()返回寫出的項數。
只要文件按二進位打開,fread()和fwrite()就可以讀/寫各類信息。以下程序先向文件寫double,int和long型數據,然後再讀回。
- //向磁碟文件寫入一些非字元型的數據,並且再將其讀回到內存
- #include <stdio.h>
- #include <stdlib.h>
- int main(void)
- {
- FILE *fp;
- double d1 = 12.23,d2;
- int i1 = 101,i2;
- long l1 = 123023L,l2;
- if((fp=fopen("test", "wb+"))==NULL) {
- printf("Cannot open file.
"); - exit(1);
- }
- //將3個值寫入到文件中
- fwrite(&d1, sizeof(double), 1, fp);
- fwrite(&i1, sizeof(int), 1, fp);
- fwrite(&l1, sizeof(long), 1, fp);
- //重置到文件的開始處
- rewind(fp);
- //將3個值從文件中讀出
- fread(&d2, sizeof(double), 1, fp);
- fread(&i2, sizeof(int), 1, fp);
- fread(&l2, sizeof(long), 1, fp);
- printf("%f %d %ld", d, i, l);
- fclose(fp);
- return 0;
- }
※springboot之定時任務
※C++ 下 typeof 的實現
TAG:程序員小新人學習 |