文件是操作系统为用户或应用程序提供的一个读写硬盘的虚拟单位。文件的操作是基于文件,即文件的操作核心就是:读和写。也就是只要我们想要操作文件就是对操作系统发起请求,然后由操作系统将用户或应用程序对文件的读写操作转换成集体的硬盘指令(比如控制盘片转动,控制机械手臂移动,以此来读取数据)。
内存无法永久保存数据,但凡我们想要永久保存数据都需要把文件保存到硬盘中,而操作文件就可以实现对硬件的操作。
ofstream (写文件),ifstream(读文件),frsream(读写操作)
(1).要在E盘建立一个文件,在c++中E通e.
(2).输出流 ofstream,输入流ifstream(读取)
(3).打开文件,流对象.open()
(4).关闭文件,流对象.close().
(5).输入就是从磁盘上的文件中读取内容到内存中。并非cin【硬盘到内存】
(6).输出就是将内存中的数据内容输出或则说写入到磁盘的文件中。【内存到硬盘】
#include
using namespace std;
#include
#include
int main()
{
string s1="123";
ofstream of; //定义输出流;
of.open("e:\\123.txt");
of << "输入的字符串是:"<<s1 << endl;
of.close();
return 0;
}
#include
using namespace std;
#include
#include
int main()
{
string s1="2000";
ofstream of; //定义输出流;
ifstream If; //定义只读取文件;
of.open("e:\\123.txt");
of << "利用ofstream的字符串是:" << s1 << endl; //被读取的文件
of.close();
If.open("e:\\123.txt");
s1 = "888";
If >> s1; //读取文档123.txt到s1
cout<< "读取123.txt的文件是:" << s1 << endl;
return 0;
}
#include
using namespace std;
#include
#include
int main()
{
string s1 = "41235";
fstream IO; //定义输入输出流的综合体;
IO.open("e:\\123.txt");
IO << "IO输出的字符串是:" << s1 << endl;
IO.close();
IO.open("e:\\123.txt");
s1 = "12354";
IO >> s1; //读取文档123.txt;
cout << "读取的文件是:" << s1 << endl;
IO.close();
return 0;
}
路径+文件主干名+文件后缀
判断 流对象.open()
#include
using namespace std;
#include
#include
int main()
{
string s1="123";
ofstream of;
of.open("e:\\123.txt");
if (!of.is_open())
{
cout << "文件打开失败:" << endl;
}
cout << "文件打开成功!" << endl;
of << "输出到硬盘的数为::"<<s1 << endl;
of.close();
return 0;
}
判断流对象(!of)
#include
using namespace std;
#include
#include
int main()
{
string s1="123";
ofstream of;
of.open("e:\\123.txt");
if (!of) //利用流对象进行判断
{
cout << "打开文件失败" << endl;
}
cout << "成功打开文件:" << endl;
of << "输出到硬盘的数为::"<<s1 << endl;
of.close();
return 0;
}
write(const char* str,int n)str是 字符指针或字符 数组,
用来存放一个字符串。n是int型数,它用来表示输出显示字符串中字符的个数。
#include
using namespace std;
#include
#include
int main()
{
ofstream of;
of.open("e:\\123.txt");
of << 1000 << endl;
of << "hello 硬盘!" << endl;
of.put('Ys'); //写操作中put()函数,只能向硬盘中输出一个,
int var = 12345;
of.write((const char*)&var, sizeof(int)); //char*并不是指的字符串,而是指的地址,在这边要强行转换(地址,长度)
of.close();
return 0;
}
memset(清除的数组,清楚为多少,数组的原来缓存区)函数,
read(char* dst, streamsize count);
#include
using namespace std;
#include
#include
int main()
{
ofstream of;
of.open("e:\\123.txt");
of << 2000<< endl;
of << "helloworld" << endl;
of.put('Y'); //写操作中put()函数,只能向硬盘中输出一个,
int var = 12345;
of.write((const char*)&var, sizeof(int)); //char*并不是指的字符串,而是指的地址,在这边要强行转换(地址,长度)
of.close();
ifstream If;
If.open("e://123.txt");
//int va = 12345;
//If >> va; // >>读出整形
//cout << "硬盘到内存的数据为:" << va<
//char s[100] = {0};
//If >> s;
//cout << s << endl; // 读出字符串
//char ch;
//ch=If.get(); //这个读出来的是换行,没显示
//ch = If.get();
//cout << "读出的put字符是:" << ch << endl;
char s[100] = { 0 };
If.getline( s,sizeof(s));
cout << s << endl;
memset(s, 0, sizeof(s)); //memset(清除的数组,清楚为多少,数组的原来缓存区)函数,
If.getline(s, sizeof(s));
cout << s << endl;
memset(s, 0, sizeof(s));
int va = 1235;
If.read((char*) & va, sizeof(int));
cout << "通过二进制读出的数据为:" << va<<endl;
If.close();
return 0;
}
#include
using namespace std;
#include
#include
int main()
{
ofstream of;
of.open("e:\\123.txt");
of << 1000 << endl;
of << "hello 硬盘!" << endl;
of.put('Ys'); //写操作中put()函数,只能向硬盘中输出一个,
of.close();
return 0;
}
#include
using namespace std;
#include
#include
int main()
{
ofstream of;
of.open("e:\\123.txt");
of << 2000<< endl;
of << "helloworld" << endl;
of.put('Y'); //写操作中put()函数,只能向硬盘中输出一个,
int var = 12345;
of.write((const char*)&var, sizeof(int)); //char*并不是指的字符串,而是指的地址,在这边要强行转换(地址,长度)
of.close();
ifstream If;
If.open("e://123.txt");
int va = 12345;
If >> va; // >>读出整形
cout << "硬盘到内存的数据为:" << va<<endl;
char s[100] = {0};
If >> s;
cout << s << endl; // 读出字符串
char ch;
ch=If.get(); //这个读出来的是换行,没显示
ch = If.get();
cout << "读出的put字符是:" << ch << endl;
If.close();
return 0;
}
#include
using namespace std;
#include
#include
int main()
{
ofstream of;
of.open("e:\\123.txt");
of << 2000<< endl;
of << "helloworld" << endl;
of.put('Y'); //写操作中put()函数,只能向硬盘中输出一个,
int var = 12345;
of.write((const char*)&var, sizeof(int)); //char*并不是指的字符串,而是指的地址,在这边要强行转换(地址,长度)
of.close();
ifstream If;
If.open("e://123.txt");
char s[100] = { 0 };
If.getline( s,sizeof(s));
cout << s << endl;
memset(s, 0, sizeof(s)); //memset(清除的数组,清楚为多少,数组的原来缓存区)函数,
If.getline(s, sizeof(s));
cout << s << endl;
memset(s, 0, sizeof(s));
If.close();
return 0;
}
制作不易!!!!! 谢谢支持!!!!!