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



CSDN - 文档中心 - Visual C++ 阅读:5996   评论: 4    参与评论
 转载自:http://dev.csdn.net/article/4/4213.shtm
标题  在Visual C++中使用fopen()函数来读写文件     选择自 ghj1976 的 Blog
关键字  在Visual C++中使用fopen()函数来读写文件
出处  http://www.netsword.net/program/show.php3?dir=./c/&file=2000-09-23-17-36-35
 

在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就是使用打开文件对话框得到的文件路径及文件名。

 


相关文章
对该文的评论
kennyu ( 2004-05-17)
一定要用char吗,好像不用转化,可以直接用CString的啊!!
leguox ( 2001-02-13)
作者似乎对VC++不 是很熟,我来写一个更简单写的,献丑了!
CMyFileDialog myDlg(true); 
myDlg.DoModal(); 
CString fileName; 
fileName=myDlg.GetPathName(); 
Char* FilePath=LPCTSTR (fileName);  //操作符从载!
fopen(FilePath ,"w");
^^^^^^^




liangml ( 2001-02-13)
作者似乎对MFC很不熟悉。CString::GetBuffer比这样动态分配一个小内存块然后逐个GetAt()好多了。而且上一个例子还不知道有没有内存泄漏.要不然就用CFile,反正CString重载了LPCTSTR转换符。
tlovexyj ( 2001-02-13)
我当初不会MFC的时候就是用的 FILE 来操作文件的。
发现很多问题,后来才知道是 fopen fread ……函数有读写限制。
好象是不能读写大于64K(?忘了,记不很清楚了)
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值