深入C语言把文件读入字符串
2017-10-26 19:39
253 查看
1.纯C实现
FILE *fp; if ((fp = fopen("example.txt", "rb")) == NULL) { exit(0); } fseek(fp, 0, SEEK_END); int fileLen = ftell(fp); char *tmp = (char *) malloc(sizeof(char) * fileLen); fseek(fp, 0, SEEK_SET); fread(tmp, fileLen, sizeof(char), fp); fclose(fp); for(int i = 0; i < fileLen; ++i) { printf("%d ", tmp[i]); } printf("\n"); if ((fp = fopen("example.txt", "wb")) == NULL) { exit(0); } rewind(fp); fwrite(tmp, fileLen, sizeof(char), fp); fclose(fp); free(tmp);
nt fseek(FILE *stream, long offset, int fromwhere);函数设置文件指针stream的位置。
如果执行成功,stream将指向以fromwhere为基准,偏移offset(指针偏移量)个字节的位置,函数返回0。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置,函数返回一个非0值。
fseek函数和lseek函数类似,但lseek返回的是一个off_t数值,而fseek返回的是一个整型。
2.利用CFile(MFC基类)
CFile fp; if(!(fp.Open((LPCTSTR)m_strsendFilePathName,CFile::modeRead))) { return; } fp.SeekToEnd(); unsignedint fpLength = fp.GetLength(); char *tmp= new char[fpLength]; fp.SeekToBegin(); //这一句必不可少 if(fp.Read(tmp,fpLength) < 1) { fp.Close(); return; }
新建文件并写入:
if(!(fp.Open((LPCTSTR)m_strsendFilePathName, CF 4000 ile::modeCreate | CFile::modeWrite |CFile::typeBinary))) { return; } fp.SeekToBegin(); fp.write(tmp,fpLength); fp.close;
相关文章推荐
- 深入C语言把文件读入字符串以及将字符串写入文件的解决方法
- C语言把文件读入字符串以及将字符串写入文件
- 【C语言】从文件每次读入一行字符串,并把这些字符串添加到字符串数组中
- c语言,把文件的所有内容读入到字符串中
- C语言在文件中查找字符串是否在某行,显示行号和该行内容
- C语言字符串拆分,打开关闭文件
- C++与C语言字符串头文件及其对应的操作
- C语言:字符串读取流读取文件中的数据
- 用C语言将文件内容读入数组
- 从文件中读入文本,文本内容为几个字符串,用逗号间隔,将其中同时含有字母和数字的字符串去除,留下仅仅只包含字母或数字的字符串,然后进行排序
- 用C语言实现将一个文件读入内存中
- C语言实现计算文件和字符串md5值
- C语言:字符串输出流输出文件中的数据。
- C语言深入学习--checklist(1)字符串
- 深入理解c语言中字符串处理函数strlen,strcpy,strcat,strcmp
- c++/c的文件读入和字符串读入总结
- C语言 读取文件 查找字符串
- C语言--- 字符串数组 、 预处理器和预处理指令 、 多文件编程 、 结构体
- C语言实现读取文件所有内容到字符串
- C语言循环输入字符串#结束写入文件