文件读取
来源:互联网 发布:mac os 壁纸 编辑:程序博客网 时间:2024/05/20 00:37
sprintf()
strcpy(buf, “”);
char buf1[]=”I”; char buf2[]=”you!”;
sprintf(buf, “%s love %s”, buf1, buf2);
puts(buf);
/output: I love you!/
定义句柄打开文件FILE
int fileLen = ftell(fp);
ftell()函数返回fp(流)当前的文件位置,如果发生错误返回-1.
fopen
fopen()函数打开由fname(文件名)指定的文件, 并返回一个关联该文件的流.如果发生错误, fopen()返回NULL. mode(方式)是用于决定文件的用途(例如 用于输入,输出,等等)
Mode(方式) 意义
“r” 打开一个用于读取的文本文件
“w” 创建一个用于写入的文本文件
“a” 附加到一个文本文件
“rb” 打开一个用于读取的二进制文件
“wb” 创建一个用于写入的二进制文件
“ab” 附加到一个二进制文件
“r+” 打开一个用于读/写的文本文件
“w+” 创建一个用于读/写的文本文件
“a+” 打开一个用于读/写的文本文件
“rb+” 打开一个用于读/写的二进制文件
“wb+” 创建一个用于读/写的二进制文件
“ab+” 打开一个用于读/写的二进制文件
fseek
函数fseek()为给出的流设置位置数据. origin的值应该是下列值其中之一(在stdio.h中定义):
名称 说明
SEEK_SET 从文件的开始处开始搜索
SEEK_CUR 从当前位置开始搜索
SEEK_END 从文件的结束处开始搜索
fread
函数fread()读取[num]个对象(每个对象大小为size(大小)指定的字节数),并把它们替换到由buffer(缓冲区)指定的数组. 数据来自给出的输入流. 函数的返回值是读取的内容数量…
fwrite
fwrite()函数从数组buffer(缓冲区)中, 写count个大小为size(大小)的对象到stream(流)指定的流. 返回值是已写的对象的数量.
fclose
关闭给出的文件流, 释放已关联到流的所有缓冲区
#include <cstring>#include <cstdio>#include <cstdlib>//fopen fseek fread fwrite fclose//void FileOptR(const char* fileName)//{//定义句柄FILE* fp,开辟了一个与文件之间的通道// FILE* fp = fopen(fileName, "r");//read/write/bin// char* buffer = (char*)malloc(128);// memset(buffer,0,128);// //输出的空间,单元的大小,单元的个数,文件句柄// size_t n = fread(buffer, sizeof(char), 128, fp);// n = fwrite(buffer,sizeof(char),128,fp);// //EOF,SET,CUR// fseek(fp, 20, SEEK_END);// ftell()函数返回fp(流)当前的文件位置,如果发生错误返回-1.// long len = ftell(fp);// fclose关闭开始的通道;// fclose(fp);//}void FileDemo(const char* strFileName,const char* p){ FILE* fp = fopen(strFileName ,"r"); FILE* po = fopen(p,"w"); if (fp == NULL) { printf("文件打开失败!\n"); } //计算文件大小 fseek(fp, 0, SEEK_END);//从文件结束处搜索 // ftell()函数返回fp(流)当前的文件位置,如果发生错误返回-1. int fileLen = ftell(fp);//找到文件结束位置 fseek(fp,0,SEEK_SET);//从文件开始处开始搜索 char* buffer = (char*)malloc(fileLen + 1); memset(buffer, 0, fileLen + 1); //fread读取fp所指向的文件中的内容**储存**到buffer中 size_t len = fread(buffer, 1, fileLen, fp);//读取输入流中的函数返回值,替换到buffer中 if (len > 0) { printf("%s",buffer); } //fwrite 把buffer中的内容**写入**strlen(buffer)个内容到po所指向的文件中 size_t writeLen = fwrite(buffer, 1, strlen(buffer), po);//在文件中写入缓冲区的内容 if (writeLen > 0) { printf("%d ",writeLen); } free(buffer); fclose(fp);}void main(){ const char cocosSetupFile[] = "C:\\Users\\mbdn\\Desktop\\新建文本文档.txt"; const char p[] = "C:\\Users\\mbdn\\Desktop\\fasf.txt"; FileDemo(cocosSetupFile, p); system("pause");}
原代码
int getFileSize(FILE* fp){ // 计算文件大小 fseek(fp, 0, SEEK_END); int fileLen = ftell(fp); fseek(fp, 0, SEEK_SET); return fileLen;}//打印void show(const char* buffer, int len){ int cnt = len / 16; for (int ix = 0; ix< cnt; ++ix) { for (int iy = 0; iy < 16; ++iy) { printf("%02X ", buffer[ix * 16 + iy]); } printf("\n"); }}void fPartReadDemo(const char* strFileName){ FILE* fp = fopen(strFileName, "rb"); if (fp == NULL) { printf("文件打开失败!\n"); return; } const int BUF_SIZE = 1024; int flen = getFileSize(fp); char* buffer = (char*)malloc(BUF_SIZE); memset(buffer, 0, BUF_SIZE); for (;;) { int len= fread(buffer, 1, BUF_SIZE, fp); flen -= len; show(buffer, len); if (len < BUF_SIZE) { break; } }}void fEofDemo(const char* strFileName){ FILE* fp = fopen(strFileName, "r"); if (fp == NULL) { printf("文件打开失败!\n"); return; } int outChar = 0; while (outChar!= EOF) { outChar= fgetc(fp); char ch = (char)outChar; printf("%c ", outChar); } fclose(fp);}void FileDemo(const char* strFileName){ // 读文件 FILE* fp = fopen(strFileName, "ab+"); if (fp == NULL) printf("文件打开失败!\n"); // 计算文件大小 fseek(fp, 0, SEEK_END);//从文件结束处开始搜索 int fileLen = ftell(fp);//ftell当前文件位置 fseek(fp, 0, SEEK_SET);//从文件开始处开始搜索 // 读文件 char* buffer = (char*)malloc(fileLen + 1); memset(buffer, 0, fileLen + 1); size_t len = fread(buffer, 1, fileLen-10, fp); if (len > 0) { printf("[%d]读出内容为-> %s\n",len, buffer); } free(buffer); // 写文件 const char szWriteBuffer[] = "helloworld!"; size_t writeLen = fwrite(szWriteBuffer, 1, strlen(szWriteBuffer), fp); if (writeLen > 0) { printf("共写入 [%d] 个字节!\n", writeLen); } fclose(fp);}//int main()//{// //const char fileName[] = "D:\\work\\cppCode\\FileDemo\\cocos2dx.txt";// const char cocosSetupFile[] = "D:\\cocos_creator\\CocosCreator_v1.2.2_2016092001_setup.exe";// //FileDemo(fileName);// //fEofDemo(fileName);// fPartReadDemo(cocosSetupFile);// system("pause");// return 0;//}
- 文件读取(读取图片)
- 读取文件
- 读取文件
- 文件读取
- 文件读取
- 文件读取
- 读取文件
- 读取文件
- 读取文件
- 读取文件
- 文件读取
- 读取文件
- 文件读取
- 文件读取
- 读取文件
- 读取文件
- 文件读取
- 读取文件
- maven项目 加入json-lib-2.2.3-jdk15.jar 报错 Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile
- 欢迎使用CSDN-markdown编辑器
- Python字典中items()和iteritems()区别
- NoSuchMethodError
- 基本权限 UGO
- 文件读取
- hibernate框架
- springboot jenkins 部署 通过shell执行,最后springboot启动失败
- PS for Mac 破解版下载
- erlang 调度
- 移动端车牌识别/车牌OCR识别
- 在Javascript中,获取到数字超出长度问题
- 寻迹小车开发日记
- favicon在IE和非IE浏览器上的兼容问题及其解决