#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;
}