p143-5.1文件操作-文本文件

文件操作

p143-5.1文件操作-文本文件

 

5.1.1写文件: 

写文件步骤:

p143-5.1文件操作-文本文件

 

 通过

“流对象”

这个对象,就可以和文件打交道,操作文件,往文件写内容了。

文件打开方式:

p143-5.1文件操作-文本文件

 

 

 1 #include<iostream>
 2 using namespace std;
 3 #include<fstream>//头文件包含
 4 
 5 
 6 //文本文件 写文件
 7 
 8 
 9 
10 
11 void test01()
12 {
13     //1、包含头文件 fstream
14 
15     //2、创建流对象
16 
17     ofstream  ofs;//把数据给流出去
18 
19     //3、制定打开方式
20     ofs.open("test.txt",ios::out);
21 
22     //4、写内容
23     ofs << "姓名: 张三" << endl;
24     ofs << "性别: 男" << endl;
25     ofs << "年龄: 18" << endl;
26 
27     //5、关闭文件
28     ofs.close();
29     
30 }
31 int main()
32 {
33     test01();
34 
35 
36     system("pause");
37     return 0;
38 }

 

 5.1.2读文件

读文件步骤

p143-5.1文件操作-文本文件

 

 

 1 #include<iostream>
 2 #include<fstream>
 3 using namespace std;
 4 #include<string>
 5 
 6 //文本文件 读文件
 7 
 8 void test01()
 9 {
10     //1、包含头文件
11 
12     //2、创建流对象
13     ifstream ifs;
14 
15     //3、打开文件 并判断是否打开成功
16     ifs.open("test.txt", ios::in);
17     if (!ifs.is_open())
18     {
19         cout << "文件打开失败" << endl;
20         return;
21     }
22     //4、读数据
23 
24     //第一种
25     //char buf[1024] = { 0 };
26     //while (ifs >> buf)//读取结束读不到了会返回false
27     //{
28     //    cout << buf << endl;
29     //}
30 
31     //第二种
32     //char buf[1024] = { 0 };//初始化字符数组
33     //while (ifs.getline(buf, sizeof(buf)))
34     //{
35     //    cout << buf << endl;
36     //}
37 
38     //第三种
39     //string buf;
40 
41     //while (getline(ifs, buf))
42     //{
43     //    cout << buf << endl;
44     //}
45 
46     //第四种
47     char c;
48     while ((c = ifs.get()) != EOF)//EOF end of file
49     {
50         cout << c;//注意没有endl;
51     }
52 
53 
54 
55     //5、关闭文件
56     ifs.close();
57 }
58 
59 
60 
61 int main()
62 {
63     test01();
64 
65 
66     system("pause");
67     return 0;
68 }

 

ifs.isopen()可以判断是否打开成功

close()关闭文件

5.2二进制文件

以二进制方式对文件进行读写操作

打开方式要确定为ios::binary

5.2.1写文件

 1 #include<iostream>
 2 using namespace std;
 3 #include<fstream>
 4 
 5 //二进制文件 写文件
 6 class Person
 7 {
 8 public:
 9 
10     char m_Name[64];//姓名//c语言的字符数组代表一个字符串
11     int m_Age;//年龄
12 
13 };
14 void test01()
15 {
16     //1、包含头文件
17 
18     //2、创建流对象
19     ofstream ofs("person.txt", ios::out | ios::binary);
20 
21     //3、打开文件
22     //ofs.open("person.txt", ios::out | ios::binary);
23     //4、写文件
24     Person p = { "张三", 18 };//构造函数的调用 应该是属于隐式转换法
25     ofs.write((const char *)&p,sizeof(Person));
26     //5、关闭文件
27     ofs.close();
28 }
29 
30 
31 int main()
32 {
33     test01();
34 
35 
36     system("pause");
37     return 0;
38 }

 

5.2.2读文件

读用write(),写用read()

 

上一篇:PING命令执行漏洞-绕过空格


下一篇:C++文本操作文件-读、写文件