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

VC下实现fopen支持中文的方法 主要介绍了VC下实现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(?忘了,记不很清楚了)
 
vscode编辑器,相对路径文件读取失败 阅读详情

相关推荐

VC++ 文件读写总结

一、文件打开函数概述 1. _open: _open 函数将打开由 filename 指定的文件并使其做好读写准备 2._sopen: _sopen 函数将打开由 filename 指定的文件并使该文件做好共享的读写准备 3.fopenfopen 函数打开 filename指定的文件 4.freopen: freopen函数将关闭当前与相关联的文件stream,并重新指

6041

【C语言】文件操作

文件读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。将地址pf里面的内容到结构体变量s里面,最多2次,大小为结构体。将地址s里面的内容写进pf里面,写一次,大小为结构体。可以分别与scanf 和 printf 对比学习。file.txt 的总大小 = 19 字节。执行该操作后,文件指针就会返回到开始位置。让文件指针的位置回到文件的起始位置。刷新缓冲区中的内容到stdout中。

FZC206的博客 284

vscode 中用fopen()显示找不到文件的错误

如果你检查了各种地方都没有错,可以考虑一下,先试试绝对路径,并且是不是文件路径中有中文!我就是有中文,导致一直显示文件不存在!错误很细小,要注意!

a_study_Superman的博客 194

2 函数变量不安全问题 && 无法查找或打开PDB文件

一、C4996 fopen(‘fscanf’、strcmp) 严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen(‘fscanf’、strcmp):This function or variable may be unsafe. 最全解决办法 方法一:在程序最前面加#define _CRT_SECURE_NO_DEPRECATE; 方法二:在程序最前面加#define _CRT_SECURE_NO_WARNINGS; 方法三:在程序最前面加#pragma warning(disable:

qq_42990803的博客 491

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

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

cherry_xidian的专栏 1681

Visual C++使用fopen()函数读写文件 (转)

Visual C++使用fopen()函数读写文件 (转)[@more@]在Visual C++使用fopen()函数读写文件 刘志荣 很多使用过Turbo C的朋友喜欢用fopen()函数读写文件,在Visual ...

csd3176的博客 223

fopen警告处理方式

warning C4996:fopen”被声明为否决的 问题:vs2005中编程时,遇到如下: warning C4996:fopen”被声明为否决的。 解释:微软的警告,主要是那些都是C库的函数,很多函数内部是不进行参数检测的(包括越界类的),微软担心使用这些会造成内存异常,所以就改写了一 下同样功能的函数,只不过进行了参数的检测,使用这些新的就可以了。不用特意记,每个函...

dianshengzhi1027的博客 570

解决vs2015使用fopen、fprintf等函数报错的问题

出现错误提示: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. 解决方法:右键工程名-->属性--&...

dingguayi7025的博客 491

Visual Studio解决freopen等函数报错函数安全问题

VS中使用freopen、fopen、sprintf等函数是会出现安全问题: error C4996: 'xxxxx': This function or variable may be unsafe. Consider using xxxxxx instead. To disable de...

chisichan7657的博客 1675

解决VS2013报错fopen、sprintf等函数安全的问题

VS2013中使用fopen、sprintf等函数是会出现安全问题: error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help ...

weixin_30349597的博客 163

Visual Studio 2013 出现error C4996(fopen函数出错)如何解决

和上一篇博客一样的套路,点击这里去搜索。 reason 选择项目,属性—配置属性—C/C++—预处理器—预处理器定义,在上面的框里复制_CRT_SECURE_NO_WARNINGS即可。 转载:https://www.cnblogs.com/Czhenyu/p/6484113.html...

Victor7235的博客 390

写了两个判断文件目录是否存在的函数

Visual Basic 6: Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As LongPrivate Const FILE_ATTRIBUTE_DIRECTORY = &H10 Public Func...

weixin_30421525的博客 74

使用FILE

使用FILE // filetest.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <stdio.h>int _tmain(int argc, _TCHAR* argv[]){ FILE *fp...

125

转载)error C4996: 'sprintf': This function or variable may be unsafe.

error C4996: ‘sprintf’: This function or variable may be unsafe. Consider using sprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. Visual Studio 2012诸...

weixin_43360707的博客 315

PHP扩展开发(6) - VS2012下strncasecmp和fopen函数warning

1. fopen warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.1&...

weixin_30627381的博客 139
上一篇: 转载:Int,Float,Char *,CString之间的转换
下一篇: 转载:C语言编程宝典(九)
prophet08
博客等级 码龄19年 2粉丝 0原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值