Cstdiofile无法逐行读取

Cstdiofile无法逐行读取,第1张

你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按行读文件出错等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10127978.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存