很多时候,我们需要读文件,我看过这类代码,在一个do-while循环中,一点一点的读取文件内容,然后做响应的操作,我感觉,这样实在太费事,因此,将此类代码改正了过来:一次性读取文件全部的内容,然后在内存中一点一点的分析内容.
例子如下:
#include <string.h>
#include <stdio.h>
#include <fstream>
using namespace std;
int main()
{
ifstream fin("test.txt"); //假设当前程序当前目录下有一个test.txt文件.内容为abcdefghijklmnopqrstuvwxyz
if (!fin)
{
return 0;
}
fin.seekg(0,ios::end);
int len = fin.tellg(); // 获取文件长度
char *buf = new char[len+1];
memset(buf,0,len+1);
fin.seekg(0,ios::beg);
fin.read(buf,len);
fin.close();
int i = 0;
do
{ char mem[4] = {0};
strncpy(mem,buf+i,3); //一点一点的分析内容
i+=3;
printf("%s\n",mem);
} while (i<len);
delete buf;
return 0;
}