
你fileFlush();是什么意思?
这个是Flush的描述:Forces any data remaining in the file buffer to be written to the file
你这里读文件,调用个Flush是何用意?
去掉试试
FILE是最高效的
fstream是基于FILE封装的
CFile和CStdioFile是基于Windows API ReadFile封装的,调用起来会比FILE慢。
目测上述代码没有发现什么问题,建议按照如下方式来调试。
在while循环内部的“strText += szLine;”打上断点,单步执行时,监视strText的值。
/////////////////////////////////////////////////////////////////////
刚才试验了一下,在一个按钮的单击响应函数里面写了如下代码:
void CFileTestDlg::OnTestfile()
{
// TODO: Add your control notification handler code here
CString strText = "";
CString szLine = "";
//打开文件
CStdioFile file;
if (!fileOpen("testtxt",CFile::modeRead))
{
AfxMessageBox("无法打开文件!");
return;
}
//逐行读取字符串
while( fileReadString( szLine ) )
{
strText += szLine;
}
fileClose();
AfxMessageBox(strText);
}
/////////////////////////////////////////////////////////////////////
结果:AfxMessageBox能够读出文本中的内容。
至于你为什么读不出内容,我想,可能有以下几个原因。
1代码中缺少是否打开文件的判断,有可能打开文件失败。
2注意此处待读文件的路径为相对路径,txt文件需要放在工程目录下面。
请设置断点后,单步调试确认。
以上就是关于Cstdiofile无法逐行读取全部的内容,包括:Cstdiofile无法逐行读取、FILE(C),fstream(C++),CFile( MFC),CStdioFile(MFC)哪个比较高效、VC++求助!!CStdioFile按行读文件出错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)