文件读取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);

  }

猜你喜欢

转载自blog.csdn.net/qq_37051576/article/details/56675517