文件读取CFile、File、getline

MFC中读取文件时,会遇到整个文档读取和每行读取的情况。

读取整个文档的代码

CFile pfile(fileDlg.GetFileName(),CFile::modeRead);

char* pBuf;
DWORD dwFileLen;
dwFileLen = pfile.GetLength();
pBuf=new char[dwFileLen+1];
pBuf[dwFileLen]=0;
pfile.Read(pBuf,dwFileLen);
MessageBox(pBuf);

pfile.Close();

读取每一行的代码

CFile MyFile;
CString strFileStr = "";
char strFileChar;
MyFile.Open(_T("Text.txt"), CFile::modeRead);

while(MyFile.Read(&strFileChar,1))
{
if(strFileChar == '\n')
{
MessageBox(strFileStr);
strFileStr = "";
}
else
{
strFileStr = strFileStr + strFileChar;
}
}

使用getline()函数(c、c++都有)代码 如下

 FILE * fp;
  char * line = NULL;//指向存放该行字符的指针,如果是NULL,则有系统帮助malloc,请在使用完成后free释放。
  size_t len = 0;//如果是由系统malloc的指针,请填0
  ssize_t read;
fp = fopen("/etc/motd", "r");
  if (fp == NULL)
  exit(EXIT_FAILURE);
while ((read = getline(&line, &len, fp)) != -1)
{
  printf("Retrieved line of length %zu :\n", read);
  printf("%s", line);
  }
if (line)
  free(line);//释放内存
  exit(EXIT_SUCCESS);

  }

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值