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;
//}