@Sakura-W
2016-04-30T15:28:15.000000Z
字数 2413
阅读 2623
C语言
1.头文件
#include <fstream>
2.文件输出流类
ifstream --从已有文件读取
ofstream --向文件写内容
fstream --打开文件供读写
3.支持的文件类型
1)文本文件:保存的是可读的字符。使用文本模式只能读写文本文件
2)二进制文件:保存的是二进制数据。使用二进制模式,可以操作图像等文件
1.步骤
1)声明一个ofstream变量,并与一个文件相关联
2)写文件
3)调用close方法,关闭文件流
2.例子
#include <fstream>
using namespace std;
int main(){
ofstream file1("test.txt");//关联文件(若该文件不存在,则新建该文件)
file1<<"写入文件"<<endl;//可以用cout一样使用操作符<<向文件写入内容
file1.close();//若未调用close方法,file1的析构函数会默认关闭文件流
return 0;
}
1.步骤
1)声明一个ifstream变量,并与一个文件关联起来
2)从文件读取数据
3)关闭文件
2.例子
#include <fstream>
using namespace std;
int main(){
ifstream file("test.txt");
int x;
file>>x;//向cin一样通过输入给x赋值
cout<<x;
return 0;
}
//可以像cin一样使用>>操作符操作文件或者调用成员函数
file>>x;
file.get(char);
file.getline(char *, int sz);
ofstream和ifstream只能进行读或者写,而fstream则同时提供读写功能
例子:
#include <fstream>
using namespace std;
int main(){
fstream file("test.txt");
//do input or output
file.close();
}
1.open函数
1)作用:将ofstream对象与文件关联起来
ofstream file;
file.open("test.txt");
2)打开模式
ios_base::app --打开一个输出文件并用于在文件尾添加数据
ios_base::ate --打开一个现存文件并查找到结尾
ios_base::in --打开一个输入文件,避免删除文件中现有的内容
ios_base::out --打开一个文件,用于输出。默认模式
ios_base::trunc--打开一个文件,如果它已经存在则删除其原有内容
ios_base::binary--以二进制模式打开一个文件(默认是文本模式)
2.close函数
关闭一个与文件输出流关联的文件。虽然ofstream析构函数会自动完成关闭,但是如果需要在同一对象上打开另外的文件,就需要使用close函数。
3.put函数
把一个字符写到输入流中。
cout.put('A');//精确地输出一个字符
4.write函数
把内存中的一块内容写到文件输出流中,长度参数指出写的字节数
ostream &write(const char *buf, streamsize num);
buf是一个字符数组,它用以存放你要写入文件的数据;num是写入文件的字节数
#include <fstream>
#include <cstring>
using namespace std;
int main(){
ofstream file("test.txt",ios_base::out);
char arr[13];
strcpy(arr, "Hello World!");
file.write(arr, 5);//把前五个字符写进文件
return 0;
}
1.open函数
1)作用:将文件输入流对象与一个文件关联起来
2)文件输入流文件打开模式
ios_base::in --打开文件用于输入(默认)
ios_base::binary--以二进制模式打开文件(默认为文本文件)
2.close函数
作用于文件输出流的close函数相同
3.get函数
1)作用:作用于提取运算符">>"相似,但get函数可以读入空白字符
#include <iostream>
using namespace std;
int main(){
char ch;
while((ch = cin.get()) != EOF){//EOF表示文件或者标准输入的结尾
cout.put(ch);
}
return 0;
}
4.getline函数
1)作用
istream类的非成员函数getline允许从输入流中读取多个字符,并且允许指定输入终止字符,从读取的内容中删除该终止字符,并且将结果保存到string类型的对象中。非成员的getline函数声明在string头文件中
2)例子
#include <iostream>
#include <string>
using namespace std;
int main(){
string line;
getline(cin, line, 't');
//参数分别表示输入流、保存结果的string对象和终止字符
cout<<line<<endl;
return 0;
}
5.read函数
从一个文件读字节到一个指定的存储器区域,由长度参数确定要读的字节数。
istream &read(char *buf, streamsize num);
buf应当是一个字符数组,由文件读出的数据将被保存在这儿。
#include <fstream>
#include <iostream>
using namespace std;
int main(){
ifstream file("test.txt",ios_base::in);
char arr[10];
file.read(arr, 3);
//读取文件中的前三个字符,并且赋值给arr字符数组,然后在控制台打印
cout<<arr;
return 0;
}