C/C++ 读写文件
来源:互联网 发布:directx 11游戏编程 编辑:程序博客网 时间:2024/05/16 05:03
1、C(高效、字符数量不会增加)
(1)、读文件
第一种:
static bool open(const string filename, string& content) //filename:文件名 content:内容
{
FILE *file = fopen(filename.c_str(), "rb"); //只读打开一个二进制文件,只允许读数据
if (file == NULL)
return false;
fseek(file, 0, SEEK_END); //设置文件指针(文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))
int len = ftell(file); //偏移长度
rewind(file);
char *buffer = new char[len];
fread(buffer, sizeof(char), len, file);
content.assign(buffer, len);
delete []buffer;
fclose(file);
return true;
}
第二种:
static bool open(const string filename, string& content) //filename:文件名 content:内容
{
FILE *file = fopen(filename.c_str(), "rb"); //只读打开一个二进制文件,只允许读数据
if (file == NULL)
return false;
fseek(file, 0, SEEK_END); //设置文件指针(文件头0(SEEK_SET),当前位置1(SEEK_CUR),文件尾2(SEEK_END))
int len = ftell(file); //偏移长度
rewind(file);
char *buffer = new char[len];
fread(buffer, sizeof(char), len, file);
content.assign(buffer, len);
delete []buffer;
fclose(file);
return true;
}
2、C++(高效不会引入新的字符)
(1)、读文件
static open(const std::string filename, std::string& content)
{
ifstream in(filename.c_str(), ios::in);
istreambuf_iterator<char> beg(in), end;
string content(beg, end);
in.close();
}
(2)、写文件
static write(const std::string filename, std::string& content){ ofstream fileStream("filename",ios::binary | ios::out); fileStream.write(strContent.c_str(),strContent.size()); fileStream.close();}
第三种 QT方法(会引入新的字符、但是效率非常高)
(1)、读文件static open(QString filename, QString &content)
{
if(!filename.open(QIODevice::ReadOnly | QIODevice::Text))
{
return;
}
QTextStream txtInput(&filename);
while(!txtInput.atEnd())
{
content = txtInput.readLine();
}
file.close();
}(2)写文件static write(QString filename, QString &content)
{
QFile file(filename);
if (file.open(QFile::Append | QFile::Text))
{
QTextStream out(&file);
out << content;
out.flush();
file.close();
}
}
- 【C/C++】文件读写
- C++/C 文件二进制读写
- C++/C 文件二进制读写
- c语言读写文件
- 文件读写(c)
- C#-读写INI文件
- [C++]文件读写操作
- C#读写INI文件
- C 读写文件
- C读写ini文件
- c#FileStream文件读写
- 读写文件 c
- WinAPI C读写文件?
- C语言读写文件
- 文件读写(C++)
- c中的文件读写
- C文件读写
- c读写文件
- iOS带有缩放效果的自动轮播图
- 【LeetCode】62.Unique Paths解题报告
- concat、reverse方法、随机排序、随机函数
- 设计模式之抽象工厂模式的学习心得
- java 编程中遇到空指针异常的可能原因java.lang.nullpointerexception
- C/C++ 读写文件
- win10 python 3.5.2 安装lightgbm
- BSEG和BSIS、BSAS、BSID、BSAD、BSIK、BSAK六个表的关系(转)
- 多行新闻滚动栏实现
- Codeforces Drinks
- Python的socket网络编程1 sock简单通信实现
- scala 第一周编程作业
- 用VS+CImg+IPP部署image processing的C++工程
- 实战Java高并发程序设计-04 Java并发包锁和其他工具的使用