您的位置:首页 > 其它

fstream和stringstream之间的转换

2016-01-25 16:26 387 查看



#include <fstream>
#include <sstream>

const char* filepath = "C:/test.txt";
ifstream in(filepath);
if(in.bad())
{
printf("open file '%d' failed!", filepath);
return;
}
stringstream ss;

ss << in.rdbuf();
string str(ss.str());
printf(str.c_str());

in.close();


这里再贴上用fopen()打开一个文件并写入二进制流的方法。

void RegexSearch::LoadStreamFromFile( char** buffer,const char* filepath )
{
FILE* pFile = NULL;
int err = ::fopen_s(&pFile, filepath, "rb");
if(0 != err)
{
printf("open file '%s' failed!", filepath);
return;
}
unsigned int length = 0;
int growSize = 512;
while(!feof(pFile))
{
char* temp = (char*)calloc(length + growSize, sizeof(char));
//将之前已读取的字节流拷贝到新的已扩容的动态数组中
memcpy( temp, *buffer, length );
if(*buffer)
free(*buffer);
*buffer = temp;
//每次读取固定大小growSize长度个字符,并拼接到*buffer指向的字符串尾部
fread((*buffer) + length, sizeof(char), growSize, pFile);
length += growSize;
}
fclose(pFile);
}




阅读(1469) | 评论(0) | 转发(0) |

0
上一篇:【转】C/C++字节对齐算法

下一篇:【转】协议适配器错误(ORA-12560: TNS:protocol adapter error)

相关热门文章

iconv用法解读

bootstrap table 的onClickCel...

winscp传输文本文件时会自动转...

WINFORM WPF字体颜色相互转换...

图片转换成Base64编码集成到ht...

test123

编写安全代码——小心有符号数...

使用openssl api进行加密解密...

一段自己打印自己的c程序...

sql relay的c++接口

linux dhcp peizhi roc

关于Unix文件的软链接

求教这个命令什么意思,我是新...

sed -e "/grep/d" 是什么意思...

谁能够帮我解决LINUX 2.6 10...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: