米斯特逗的学习笔记gilbert.blog.chinaunix.net
GilBert1987
持之以恒
全部博文(218)
四大组件(3)
开发环境(5)
Games(2)
Interview(1)
HTTP(0)
多线程同步(4)
编译内存性能(1)
基础(1)
String(3)
文件操作(3)
STL(10)
索引结构学习(1)
RTMP(0)
FFMPEG(1)
ACE(12)
网络基础(9)
HTTP(1)
HHTPS&&SSL(0)
Apache(2)
多线程(1)
2013年(8)
2012年(2)
2011年(21)
2010年(55)
2009年(116)
2008年(16)
wxliangz
00450681
孙一萌
☆彼岸★
zergduan
hukui161
怀颂HS
时光懂你
carlytay
温小二
wangkai8
msdb1989
心的回忆
分类: C/C++
2010-03-26 02:17:17
#include "stdafx.h" #include <iostream> #include <fstream> #include <string> #include <sys/stat.h> int get_filesize(const char *filename) { struct stat f_stat; if (stat(filename, &f_stat) == -1) { return -1; } return f_stat.st_size; }
int _tmain(int argc, _TCHAR* argv[]) { //获得文件的大小,开辟相应的缓冲区 std::string fileName = "reponse-news.xml"; int fileSize = get_filesize(fileName.c_str()); int readBytes = 0; std::ifstream inputStream; char * szBuf = NULL;//数据缓冲 if (fileSize > 0) { inputStream.open(fileName.c_str(),std::ios::ios_base::binary |std::ios::ios_base::in); if(inputStream.fail()) { std::cerr<<"打开文件出错!"; inputStream.clear(); inputStream.close(); return -1; } else { //开辟相应的缓冲区 szBuf = new char[fileSize]; if (szBuf != NULL) { while(!inputStream.eof() && readBytes < fileSize) { inputStream.read(szBuf + readBytes,fileSize - readBytes); if (inputStream.fail()) { delete szBuf; break; } readBytes += inputStream.gcount(); } std::cout<<"读取字符数:"<<readBytes<<"字节"<<std::endl; std::cout<<"内容为:"<<std::endl; std::cout<<szBuf; } inputStream.clear(); inputStream.close(); } } if (szBuf != NULL) { delete szBuf; szBuf = NULL; } getchar(); return 0; }
上一篇:int 到 char*的转化
下一篇:程序控制IE的两种方式
登录 注册