社区
C语言
帖子详情
怎样获得CFile.Read读到的字符数?
Liulingbing
2003-10-17 08:23:27
RT
...全文
156
5
打赏
收藏
怎样获得CFile.Read读到的字符数?
RT
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zoohoo
2003-10-17
打赏
举报
回复
就是read函数的返回值嘛,如下:
CFile::Read
virtual UINT Read( void* lpBuf, UINT nCount );
throw( CFileException );
Return Value
The number of bytes transferred to the buffer. Note that for all CFile classes, the return value may be less than nCount if the end of file was reached.
njuhuangmy
2003-10-17
打赏
举报
回复
如标题 所说, Read 函数必须指定读入的长度的阿
当然,这个 cfile.Read(buf, size); 读入的长度应该 是 小于 等于 size 的!!
返回值 就是 读入的长度
njuhuangmy
2003-10-17
打赏
举报
回复
文件的打开 之类 就不说它了
cfile.GetLength() 取得 文件的大小
cfile.SeekToBegin() 确保返回 文件头
cfile.Read() 读入
Liulingbing
2003-10-17
打赏
举报
回复
或者这样问,怎么样把一个CFile关联的字符文件所有字符读到一个CString对象里。
Liulingbing
2003-10-17
打赏
举报
回复
The number of bytes is not equal to the chacater readed.
MFC文件操作
C
File
//创建/打开文件 C
File
file
;
file
.Open(_T("test.txt"),C
File
::modeCreate|C
File
::modeNoTruncate|C
File
::mode
Read
Write); 文件打开模式可组合使用,用“|”隔开,常用的有以下几种: C
File
::modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。 C
File
::modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与C
File
::modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作。 C
File
::mode
Read
Write:以读写方式打开文件。 C
File
::mode
Read
:只读。 C
File
::modeWrite:只写。 //写入
数
据 CString strValue = "Hello World!";
file
.Write(strValue,strValue.GetLength()); //追加
数
据
file
.SeekToEnd(); //将指针移至文件末尾进行追加
file
.Write(strValue,strValue.GetLength()); //关闭文件
file
.Close(); CStdio
File
CStdio
File
是C
File
的派生类,对文件进行流式操作,对于文本文件的读写很有用处,可按行读取写入。 //写入
数
据 CString strValue = "Hello World!";
file
.WriteString(strValue); //读取
数
据 CString str
Read
;
file
.
Read
String(str
Read
); 当文件存在多行
数
据需要逐行读取时,可用函
数
BOOL CStdio
File
::
Read
String(CString& rString),当遇到"\n "时读取截断,如果文件未读完,返回true,否则返回false。 //逐行读取文件内容,存入str
Read
while(
file
.
Read
String(str
Read
)) { ...; } 各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++中有关文件操作进行全面的介绍,并对在文件操作中经常遇到的一些疑难问题进行详细的分析。 1.文件的查找 当对一个文件操作时,如果不知道该文件是否存在,就要首先进行查找。MFC中有一个专门用来进行文件查找的类C
File
Find,使用它可以方便快捷地进行文件的查找。下面这段代码演示了这个类的最基本使用方法。 CString str
File
Title; C
File
Find finder; BOOL bWorking = finder.Find
File
("C:\\windows\\sysbkup\\*.cab"); while(bWorking) { bWorking=finder.FindNext
File
(); str
File
Title=finder.Get
File
Title(); } 2.文件的打开/保存对话框 让用户选择文件进行打开和存储操作时,就要用到文件打开/保存对话框。MFC的类C
File
Dialog用于实现这种功能。使用C
File
Dialog声明一个对象时,第一个BOOL型参
数
用于指定文件的打开或保存,当为TRUE时将构造一个文件打开对话框,为FALSE时构造一个文件保存对话框。 在构造C
File
Dialog对象时,如果在参
数
中指定了OFN_ALLOWMULTISELECT风格,则在此对话框中可以进行多选操作。此时要重点注意为此C
File
Dialog对象的m_ofn.lpstr
File
分配一块内存,用于存储多选操作所返回的所有文件路径名,如果不进行分配或分配的内存过小就会导致操作失败。下面这段程序演示了文件打开对话框的使用方法。 C
File
Dialog m
File
Dlg(TRUE,NULL,NULL, OFN_HIDE
READ
ONLY|OFN_OVERWRITEPROMPT|OFN_ALLOWMULTISELECT, "All
File
s (*.*)|*.*||",AfxGetMainWnd()); CString str(" ",10000); m
File
Dlg.m_ofn.lpstr
File
=str.GetBuffer(10000); str
一个简单的CDIB类
〉CDIB功能 提供针对设备无关位图的一系列操作。 〉CDIB使用方法 将DIB目录复制到工程的原文件目录中。 在工程的Source
File
s中添加DIB文件夹,并导入DIB目录中的所有文件。 在需要使用DIB的文件中添加 include "dib.h" using namespace DIB; 1)读取Bitmap图片 //CDib对象可以从读取Bitmap,DIB文件
数
据。 //之前需要创建C
File
对象,而后从C
File
对象读取
数
据。 CDib m_Dib; C
File
* pf; pf=new C
File
; pf->Open(m_ImageName,C
File
::mode
Read
); //m_ImageName为路径加文件名,如"C:\\Img\\My_Bitmap.bmp" m_Dib.
Read
(pf); pf->Close(); delete pf; 2)保存CDib对象到文件 //m_Dib是包含有图像
数
据CDib对象 //p
File
指向已经创建的可对文件进行写操作的C
File
对象 m_Dib.write(C
File
* p
File
) 3)从CDIB
获得
图像
数
据 //m_Dib 包含有图像
数
据CDib对象 //realDataFLag 选择是返回真实图像
数
据,还是返回灰度
数
据的布尔值变量(bool),为真时返回的是图像真实
数
据。 unsigned char * img; img=m_Dib.GetImgPtr(realDataFLag); //
获得
的图像
数
据是以左上角为(0,0)点开始的从左至右, //从上至下,具有真实宽度(非补4)的
数
据 //realDataFlag为真时返回的是图像真实
数
据 //realDataFlag为假时返回的是灰度化的图像
数
据 4)将图像
数
据赋给CDib对象 //m_Dib是包含有图像
数
据CDib对象 //img 指向图像
数
据的无符号
字符
型指针(unsigned char *) //realDataFLag 指明输入的是真实图像
数
据,还是返回灰度
数
据的布尔值变量(bool),为真时输入的是图像真实
数
据。 m_Dib.SetImgPtr(img,realDataFlag);//设置图像
数
据 5)从图像
数
据创建CDib对象 CDib m_Dib m_Dib.CreateDib(pImgData,width,height,nBitCount);//pImgData为指向图象
数
据的指针 //nBitCount一个像素所用的比特
数
目前仅支持8 6)由CDib对象创建Bitmap对象 //m_Dib是包含有图像
数
据CDib对象 HBITMAP bitmap; CDC * pDC=AfxGetApp()->GetMainWnd()->GetDC(); bitmap=m_Dib.CreateBitmap(pDC)//输入值为 CDC * ,一般可通过AfxGetApp()->GetMainWnd()->GetDC()
获得
7)显示图象中的特殊信息 在处理过程中将图像中的特殊信息用251~255表示(对彩色图像,将R、G、B赋予251~255的相同
数
值) 将灰度图象中灰度值大于等于251的不需特殊显示的像素赋为250, 将彩色图像中R=G=B且大于等于251的不需特殊显示的像素赋为(250,250,250) 而后按4)中描述的将图像
数
据赋给CDib对象 最后调用EnhanceColor()将CDib对象转化为可以显示特殊信息的图像
VC6.0 在对话框中打开TXT文件.rar
VC 6.0 基于mfc 打开txt文件在一个对话框窗口中,直接显示出TXT文件的内容,程序功能挺简单的,以下是相关代码: //生成一个对话框 lpszOpen
File
= new C
File
Dialog (TRUE,"","",OFN_
FILE
MUSTEXIST |OFN_HIDE
READ
ONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|"); if(lpszOpen
File
->DoModal() == IDOK )//假如点击对话框确定按钮 {
file
PathName = lpszOpen
File
->GetPathName();//得到打开文件的路径 SetWindowText(
file
PathName);//在窗口标题上显示路径 } if(
file
PathName == "") return; if(!
file
.Open(
file
PathName,C
File
::mode
Read
)) { MessageBox("can not open
file
!"); return; }
VC MFC文件读写操作.rar
VC MFC文件读写操作的范例源码,本示例中涉及到CStdio
File
写文件、C
File
读写文件 、C
File
Find、Shell操作。通过菜单可选择对应操作的执行结果,可比较一下与传统的文件操作有何不同。 lpbi->pszDisplayName=NULL; lpbi->lpszTitle="请选择要遍历的目录位置:"; lpbi->ulFlags=BIF_RETURNONLYFSDIRS|BIF_STATUSTEXT; lpbi->lpfn=NULL; //显示外壳文件夹以便用户选择 LPITEMIDLIST lpitemidlist=SHBrowseForFolder(lpbi); char path[MAX_PATH]; //转换项目标志府列表为一个系统文件路径 SHGetPathFromIDList(lpitemidlist,path); delete lpbi; //获取控件指针 CWnd* pWnd=(CWnd*)GetDlgItem(IDC_dir); //设置其标题为当前路径信息 pWnd->SetWindowText(path); //更新对话框 UpdateData(FALSE);
VC++ MFC C
File
.Open()的使用说明
VC++ MFC C
File
.Open()的使用说明
C语言
69,337
社区成员
243,078
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章