循环读取文件内容并输出的方法问题 1) 如果文件稍大, 以下方式中循环读取文件内容并输出, 如何判断已将文件读取完?(请补充一下)2) 有更好的方式读取文件吗?char szText[600]; CFile fDat;fDat.Open(L"\\print3.txt", CFile::modeRead | CFile::typeBinary);fDat.Read(szText, sizeof(szText));PrintTxt(szText); //打印输出所读的内容......fDat.Close(); 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try { CFile file(_T("F:\\11.txt"), CFile::modeRead); CString strText(_T("")); char buf[10] = {0}; DWORD dwEnd = file.SeekToEnd(); file.SeekToBegin(); while(dwEnd != file.GetPosition()) { memset(buf, 0, sizeof(buf)); file.Read(buf, 9); strText += CString(buf); } file.Close(); AfxMessageBox(strText); } catch (CFileException* e) { e->ReportError(); e->Delete(); } // CFile::GetLength();获取文件长度// 然后就可以计算出循环次数 1) 如果文件稍大, 以下方式中循环读取文件内容并输出, 如何判断已将文件读取完?(请补充一下)==========可以先得到文件的大小,int iLen = file.GetLength();然后一次分配和文件大小相同的缓冲区,一次性读完,不用循环 while循环就行啊,当读出的数据长度跟你的buf不一样长的时候,跳出循环就行了,CFile.read的返回值就是读取的长度不然就像楼上说的,获取长度,然后你想怎么控制就怎么控制呗,也就加几个变量标记下读取状态进行控制就行 为什么是file.Read(buf, 9),而不是file.Read(buf, 10) 呢? 请问线程函数能调用成员函数吗? RAS 拨号L2TP/IPSec 怎样设置IPSec参数?? Dialog属性 child属性问题 菜鸟问题:DLL注册,“找不到指定的程序”是怎么回事啊? 请教托盘程序的问题 右键不能出菜单 在win2000中对端口编程的方法 非常简单的问题:如何用CRect获得当前窗口大小? 求思路:Spy++获取窗口句柄是通过拖动 vc高手求救,为什么我在调用vb做的dll时,会和输入法冲突?????? Invalidate 函数在计时器里面刷新窗口导致窗口闪烁怎么解决? 删除一个文件夹下的所有文件,用什么函数? 图像处理中将图像转换为荧光图有什么作用,有哪些好处?
{
CFile file(_T("F:\\11.txt"), CFile::modeRead); CString strText(_T(""));
char buf[10] = {0};
DWORD dwEnd = file.SeekToEnd();
file.SeekToBegin();
while(dwEnd != file.GetPosition())
{
memset(buf, 0, sizeof(buf));
file.Read(buf, 9);
strText += CString(buf);
}
file.Close();
AfxMessageBox(strText);
}
catch (CFileException* e)
{
e->ReportError();
e->Delete();
}
// 然后就可以计算出循环次数
==========
可以先得到文件的大小,int iLen = file.GetLength();
然后一次分配和文件大小相同的缓冲区,一次性读完,不用循环
不然就像楼上说的,获取长度,然后你想怎么控制就怎么控制呗,也就加几个变量标记下读取状态进行控制就行
为什么是file.Read(buf, 9),而不是file.Read(buf, 10) 呢?