您的位置:首页 > 编程语言 > C语言/C++

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

2007-04-26 10:44 609 查看
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就是使用打开文件对话框得到的文件路径及文件名。

 

作者Blog:http://blog.csdn.net/ghj1976/
相关文章
做虚假的插件
VB.NET and C# 语法比较手册
Provide an Alternative View to Data Using Splitter Window
使用 Web service 的站点列表
ASP 开发准则
对该文的评论

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 fre
9fc6
ad ……函数有读写限制。
好象是不能读写大于64K(?忘了,记不很清楚了)
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ mfc vb.net vc++ blog 存储