#include <stdio.h>
#include <windows.h>

int main()
{
	HANDLE hFile = CreateFile(TEXT("d:\\test.txt"),GENERIC_READ,0,NULL,OPEN_EXISTING ,
		                      FILE_ATTRIBUTE_NORMAL,NULL);                                            
	if (hFile == INVALID_HANDLE_VALUE) 
	{ 
		OutputDebugString(TEXT("CreateFile fail!\r\n"));
	}
	char *p[10000];    //分配文本文件的行数,暂定最多接收10000行
	for(int i=0;i<10000;i++) 
	{
		p[i]= (char*)malloc(256);   //每行最多接收256个字符
		memset(p[i],0,256); 
	}
	DWORD filesize=GetFileSize(hFile,NULL);
	char* buffer=new char[filesize+1];                    
	memset(buffer,0,filesize+1);
	DWORD readsize;
	ReadFile(hFile,buffer,filesize,&readsize,NULL);
	int k,j=0,n=0;
	for(k=0;k<(int)filesize;k++)
	{
		if(buffer[k]!='\n')    //按行扫描
		{
			*(p[j]+n)=buffer[k];    //效率啊  每次仅copy一个字符
			n++;     // n 是干啥的  n是移动个体字符串索引(相当于指针)
		}
		else
		{
			j++;    //j 代表的行数
			n=0;
		}
	}
	//输出字符串指针数组
	int m=0;
	while(m<10000)
	{
		if(*p[m]=='\0') break;
		printf("%s\n",p[m]);
		m++;
	}
	delete buffer;
	return 0;
}