C语言文件读写

来源:互联网 发布:网络时间同步协议 编辑:程序博客网 时间:2024/06/06 01:20
//读取一个完整的文件 #include <stdio.h> #include <stdlib.h> int main() {     FILE* pFile;   //文件指针     long lSize;   // 用于文件长度     char* buffer; // 文件缓冲区指针     size_t result;  // 返回值是读取的内容数量     pFile = fopen("myfile.bin" , "rb");     if (pFile == NULL) {fputs("File error", stderr); exit(1);}    // 如果文件错误,退出1     // 获得文件大小     fseek(pFile , 0 , SEEK_END); // 指针移到文件末位     lSize = ftell(pFile);  // 获得文件长度     rewind(pFile);  // 函数rewind()把文件指针移到由stream(流)指定的开始处, 同时清除和流相关的错误和EOF标记     // 为整个文件分配内存缓冲区     buffer = (char*) malloc(sizeof(char) * lSize); // 分配缓冲区,按前面的 lSize     if (buffer == NULL) {fputs("Memory error", stderr); exit(2);}  // 内存分配错误,退出2     //  该文件复制到缓冲区     result = fread(buffer, 1, lSize, pFile); // 返回值是读取的内容数量     if (result != lSize) {fputs("Reading error", stderr); exit(3);} // 返回值如果不和文件大小,读错误        // terminate // 文件终止     fclose(pFile);     free(buffer);     return 0; }



#include <stdio.h> int main() {     FILE* pFile;     float buffer[] = { 2.0 , 3.0 , 8.0 };     pFile = fopen("myfile.bin" , "wb"); // 打开文件写操作     fwrite(buffer , 1 , sizeof(buffer) , pFile); // 把浮点数组写到文件 myfile.bin     fclose(pFile); // 关闭文件     float read[3];     pFile = fopen("myfile.bin" , "rb"); // 重新打开文件读操作     fread(read , 1 , sizeof(read) , pFile); // 从文件中读数据     printf("%f\t%f\t%f\n", read[0], read[1], read[2]);     fclose(pFile); // 关闭文件     return 0; }


0 0