读取文件几种方法

1.使用Windows API

 HANDLE hFile;

  DWORD nBytes;

  hFile=CreateFile(_T("d://test.txt"),GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,0,NULL);

  char msg[]="this is simple example use winows API";

  if(hFile!=INVALID_HANDLE_VALUE)

  {

   WriteFile(hFile,msg,sizeof(msg)-1,&nBytes,NULL);

   CloseHandle(hFile);

  }

  //读取文件

  hFile=CreateFile(_T("d://test.txt"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_ALWAYS,0,NULL);

  if(hFile!=INVALID_HANDLE_VALUE)

  {

 char line[256]={0};

 bool bResult;

 bResult=ReadFile(hFile,line,sizeof(line),&nBytes,NULL);

 if(nBytes!=0)

 {

 printf("%s/r/n",line);

 }

 CloseHandle(hFile);

  }

  system("pause");

2.使用STL

写入文件

ofstream out("d://test1.txt");

out<<"this is simple example use stl";

out.close();

//读取文件

ifstream in("d://test1.txt");

char line[256];

in.getline(line,256);

cout<<line<<endl;

system("pause");

3.使用CRT

 

//写入文件

FILE *fp=fopen("d://test2.txt","w");

    fprintf(fp,"CRT读取文件");

fclose(fp);

//读取文件

fp=fopen("d://test2.txt","r");

char line[256];

fscanf(fp,"%s",line);

printf("%s/r/n",line);

fclose(fp);

system("pause");

 

4.是用CRT宽字符

FILE *fp=_wfopen(L"d://test3.txt",L"w,ccs=UNICODE");

fwprintf(fp,L"%s",L"宽字符读取文件");

fclose(fp);

 

fp=_wfopen(L"d://test3.txt",L"r,ccs=UNICODE");

wchar_t line[256];

fwscanf(fp,L"%s",line);

wprintf(L"%s/r/n",line);

fclose(fp);

 

5.使用CRT Safe版本

   FILE *fp;

   fopen_s(&fp,"D://test4.txt","w");

   fprintf_s(fp,"CRT安全版本读取文件","w");

   fclose(fp);

 

   fopen_s(&fp,"d://test4.txt","r");

   char line[256];

   fscanf(fp,"%s",line,256);

   printf_s("%s/r/n",line);

   fclose(fp);

6.使用MFC库

 

  CFile file;

if(file.Open(_T("d://test5.txt"),CFile::modeCreate|CFile::modeWrite))

{

char line[256]="MFC读取文件";

file.Write(line,sizeof(line));

            file.Close();

}

 

if(file.Open(_T("d://test5.txt"),CFile::modeRead))

{

char line[256];

if(file.Read(line,256)!=0)

{

printf("%s/r/n",line);

}

file.Close();

}

 

当然还有CLR的版本,托管的c++不熟悉就不写了......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值