博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
将输入文件读入字符串以及将字符串写入输出文件
阅读量:4135 次
发布时间:2019-05-25

本文共 1753 字,大约阅读时间需要 5 分钟。

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);

2.利用CFile(MFC基类)

CFile需要包含的头文件为Afx.h

打开文件的函数原型如下

if(!(fp.Open((LPCTSTR)m_strsendFilePathName,CFile::modeRead)))

有多种模式,常用的有如下:

modeRead

modeWrite

modeReadWrite

modeCreate

文件类型有两种:

typeBinary

typeText

读写非文本文件一定要用typeBinary

读取数据的函数原型:

virtual UINT Read(void*lpbuf, UINT nCount);

代码:

//将文件读出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,CFile::modeCreate | CFile::modeWrite |CFile::typeBinary))){	return;}fp.SeekToBegin();fp.write(tmp,fpLength);fp.close;
另附一网友方法:

#include 
#include
#define MAXLEN 10240 //读取文件filename的内容到dest数组,最多可以读maxlen个字节 //成功返回文件的字节数,失败返回-1 int read_file(const char *filename, char *dest, int maxlen) { FILE *file; int pos, temp, i; //打开文件 file = fopen(filename, "r"); if( NULL == file ) { fprintf(stderr, "open %s error\n", filename); return -1; } pos = 0; //循环读取文件中的内容 for(i=0; i
\n"); return -1; } char buffer[MAXLEN]; int len = read_file(argv[1], buffer, MAXLEN); //输出文件内容 printf("len: %d\ncontent: \n%s\n", len, buffer); return 0; }

转载地址:http://zjsvi.baihongyu.com/

你可能感兴趣的文章
一篇搞懂Java反射机制
查看>>
application/x-www-form-urlencoded、multipart/form-data、text/plain
查看>>
Longest Common Prefix -最长公共前缀
查看>>
Letter Combinations of a Phone Number
查看>>
Single Number II --出现一次的数(重)
查看>>
Valid Parentheses --括号匹配
查看>>
Count and Say
查看>>
Palindrome Partitioning --回文切割 深搜(重重)
查看>>
Valid Palindrome 简单的回文判断
查看>>
对话周鸿袆:从程序员创业谈起
查看>>
web.py 0.3 新手指南 - 如何用Gmail发送邮件
查看>>
web.py 0.3 新手指南 - RESTful doctesting using app.request
查看>>
Mysql中下划线问题
查看>>
Xcode 11 报错,提示libstdc++.6 缺失,解决方案
查看>>
idea的安装以及简单使用
查看>>
Windows mysql 安装
查看>>
python循环语句与C语言的区别
查看>>
vue 项目中图片选择路径位置static 或 assets区别
查看>>
vue项目打包后无法运行报错空白页面
查看>>
Vue 解决部署到服务器后或者build之后Element UI图标不显示问题(404错误)
查看>>