在Visual C++中使用fopen()函数来读写文件

原创 2001年02月12日 18:26:00

在Visual C++中使用fopen()函数来读写文件

刘志荣


很多使用过Turbo C的朋友喜欢用fopen()函数来读写文件,在Visual C++环境中您也可以使用fopen()来读写文件。而且您还可以使用Visual C++中的标准的打开文件对话框,这样可以使选取读写文件的路径更方便。具体的做法是这样的。
首先您需要使用到MFC基本类库,在您原有的Visual C++程序中加上一个由CFileDialog类派生的新类,例如是CMyFileDialog,然后用这个新类定义一个对象,例如是:myDlg,使用这个对象的DoModal()方法,就可以呼出打开文件的对话框。这样,您只要把被选中的路径名及文件名传送给fopen()函数就可以打开读写这个文件了。

CMyFileDialog myDlg(true);
定义一个对话框对象
myDlg.DoModal();
呼出打开文件对话框
CString fileName;
定义一个Cstring类型的字符串来存储文件的路径及文件名
fileName=myDlg.GetPathName();
得到文件的路径及文件名

由于fopen()函数中需要的文件名参数是字符型的,所以我们还需要把CString类型的文件名转换为字符类型的变量。

int i, length;
定义i作为循环变量,定义length作为文件路径及文件名的长度
Char* FileName;
定义char型的字符指针来存储文件名,给fopen()函数使用
length=fileName.GetLength();
把文件名的长度赋给length变量
FileName=new char[length];
给char型的指针变量FileName分配内存空间
for(i=0;i<length;i++)
把CString型变量fileName中的字符一个一个地赋给char型的指针变量FileName
*(FileName+i)=fileName.GetAt(i);

*(FileName+length)=NULL;
在FileName变量的最后加上一个结束标志

这样,您就要吧使用fopen(FileName,"w")来写文件,或者是用fopen(FileName,"r")来读文件了。FileName就是使用打开文件对话框得到的文件路径及文件名。

 

c++学习笔记fopen问题

vs2015中编程时,遇到如下:  “fopen”被声明为否决的 解释:微软的警告,主要是那些都是C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改...
  • qq_27605099
  • qq_27605099
  • 2016年12月02日 20:56
  • 666

SQL 性能调优

个人笔记
  • aphy358
  • aphy358
  • 2015年11月04日 13:23
  • 172

Javascrpt密码强度校验函数

(function(window, verifyPwd){ window.verifyPwd = { /*最小长度*/ minLength : 6, ...
  • zouqingfang
  • zouqingfang
  • 2016年10月20日 18:51
  • 439

fopen函数mode参数详解

函数简介: 函数功能:fopen能打开磁盘内的文件,使程序能对文件进行读写。 函数原型:FILE *fopen(const char *path, const char * mode); 传入...
  • to_Baidu
  • to_Baidu
  • 2016年12月04日 23:23
  • 1551

C++中对象初始化方式

当对象在创建时获得了一个特定的值,我们说这个对象被初始化。初始化不是赋值,初始化的含义是创建变量赋予其一个初始值,而赋值的含义是把当前值擦除,而以一个新值来替代。 对象初始化可以分为默认初始化...
  • yang20141109
  • yang20141109
  • 2015年12月21日 21:32
  • 3461

C++ 标准输入输出 函数 fopen fread等系列函数使用总结

函数原型:FILE * fopen(const char * path,const char * mode); 返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,...
  • CNHK1225
  • CNHK1225
  • 2015年06月16日 15:43
  • 2351

70 给出一个函数来输出一个字符串的所有排列

70.给出一个函数来输出一个字符串的所有排列。 ANSWER  简单的回溯就可以实现了。当然排列的产生也有很多种算法,去看看组合数学, 还有逆序生成排列和一些不需要递归生成排列的方法。 印象中 ...
  • u012605629
  • u012605629
  • 2014年10月15日 22:21
  • 976

写一个函数输出一个字符串中的所有排列

我们以三个字符abc为例来分析一下求字符串排列的过程。首先我们固定第一个字符a,求后面两个字符bc的排列。当两个字符bc的排列求好之后,我们把第一个字符a和后面的b交换,得到bac,接着我们固定第一个...
  • dy0558775258712345
  • dy0558775258712345
  • 2014年05月28日 16:49
  • 599

C/C++之FILE文件流的中fopen、fread、fseek、fclose的使用

FILE文件流用于对文件的快速操作,主要的操作函数有fopen、fseek、fread、fclose,在对文件结构比较清楚时使用这几个函数会比较快捷的得到文件中具体位置的数据,提取对我们有用的信息,满...
  • qq_26811393
  • qq_26811393
  • 2016年03月13日 09:49
  • 1000

从构造函数来你的新功能

在这种方式中,代码重复被保持到最小值。 同样,你可以在你想写一个函数来重新初始化一个班回到默认值的情况下,发现自己。因为你可能已经有了一个这样的构造函数,所以你可能会试图从你的成员函数中调用构造函数...
  • shazhugw
  • shazhugw
  • 2016年06月28日 13:58
  • 149
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在Visual C++中使用fopen()函数来读写文件
举报原因:
原因补充:

(最多只允许输入30个字)