通过运用ofstream和ifstream类去创建对象来进行文件读写。
使用文件流新建或打开一个文件,并写入字符串 "This is a test file".
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
ofstream outFile("test.txt",ios::out);
if(!outFile)
cout<<"Open file or create file error."<<endl;
else
outFile<<"This is a file."<<5<<" "<<1.2;
return 0;
}
使用文件流将创建的文件test.txt.中的所有数据读取出来。
#include<fstream>
#include<iostream>
using namespace std;
int main()
{
ifstream inFile("test.txt",ios::in);
int b;
char a[100];
float c;
if(!inFile)
cout<<"File open error."<<endl;
else
{
inFile>>a;
in
cout<<"string--"<<a<<endl;
cout<<"int--"<<b<<endl;
cout<<"float--"<<c<<endl;
}
return 0;
}
使用ifstream类成员函数seekg,结合文件输入输出流,写的一个wav文件解析的应用。
wav文件解析:
#include<fstream>
#include<iostream>
#include<cstring>
//#incl
#define MAX_STR_LEN 32
using namespace std;
class wav
{
public:
char id[4];
unsigned long file_size;
//文件大小
unsigned short channel; //通道数
unsigned int frequency; //采样频率
unsigned long Bps; //Byte率
unsigned short sample_num_bit; //一个样本的位数
unsigned long data_size; //数据大小
unsigned char *data; //音频数据 ,这里要定义什么就看样本位数了,我这里只是单纯的复制数据
};
int main()
{
wav ww;
ifstream inFile("do.wav",ios::in|ios::binary);
if(!inFile)
cout<<"error";
else{
char buff[4];
unsigned long tlong ;
unsigned short tshort;
inFile.seekg(0,ios::beg);
inFile>>ww.id;
inFile.seekg(12,ios::beg);
inFile>>buff;
cout<<"fmt:"<<buff<<endl;
inFile.seekg(16,ios::beg);
inFile>>buff;
memcpy(&tlong,buff,sizeof(unsigned long));
cout<<"fmt size:"<<tlong<<endl;
inFile.seekg(20,ios::beg);
inFile>>buff;
memcpy(&tshort,buff,sizeof(unsigned short));
cout<<"format:"<<tshort<<endl;
inFile.seekg(4,ios::beg);
inFile>>ww.file_size;
inFile.seekg(22,ios::beg);
inFile>>ww.channel;
inFile.seekg(24,ios::beg);
cout<<ww.id<<endl<<ww.file_size<<endl<<ww.channel<<endl<<ww.frequency;
}
return 0;
}
原文链接: https://www.cnblogs.com/ZP-Better/p/7079157.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/255943
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!