C++黑马程序员——P143-146. 文件操作

时间:2023-04-27
本文章向大家介绍C++黑马程序员——P143-146. 文件操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  • P143. C++文件操作——文本文件——写文件
  • P144. C++文件操作——文本文件——读文件
  • P143. 写文件

   

  

  

  

示例:

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 #include <fstream>
 5 
 6 //文本文件 写文件
 7 
 8 void test01()
 9 {
10     //1. 包含头文件
11     //2. 创建流对象
12     ofstream ofs;
13     //3. 打开文件
14     ofs.open("test.txt", ios::out);    //如果不指定目录(第一个参数),文件被创建在了,与项目的cpp文件同级目录下
15     //4. 写数据
16     ofs << "姓名:张三" << endl;
17     ofs << "性别:男" << endl;
18     ofs << "年龄:18" << endl;
19     //5. 关闭文件
20     ofs.close();
21 }
22 
23 int main()
24 {
25     test01();
26     return 0;
27 }

  

  

  • P144. 读文件

(要有上P中创建出来的“test.txt”)

  

示例:

 1 #include <iostream>
 2 #include <string>
 3 using namespace std;
 4 #include <fstream>
 5 
 6 //文本文件 读文件
 7 
 8 void test01()
 9 {
10     //1. 包含头文件
11     //2. 创建流对象
12     ifstream ifs;
13     //3. 打开文件并判断是否打开成功
14     ifs.open("test.txt", ios::in);
15     //判断是否打开成功
16     if (ifs.is_open()) {
17         cout << "文件打开成功" << endl;
18     }
19     else {
20         cout << "文件打开失败" << endl;
21         return;
22     }
23     //4. 读数据(4种方式)
24     
25     //第一种
26     //自己测试发现:第一种方式为按行读取;但是如果此行有空格、制表符(多个空格和制表符 按一个空位算),就会在下一行输出 本行空格之后的内容
27     //char buf[1024] = { 0 };    //初始化
28     //while (ifs >> buf) {    //当ifs中有数据并且没读完
29     //    cout << buf << endl;
30     //}
31 
32     //第二种
33     //自己测试发现:这种方式为按行读取;如果有空格或制表符,它会按文本文件中的样子输出
34     //char buf[1024] = { 0 };
35     //while (ifs.getline(buf, sizeof(buf))) {    //getline函数中的第一个参数类型是字符串地址(char*),第二个参数是 一行要读取多少个大小的空间
36     //    cout << buf << endl;
37     //}
38 
39     //第三种
40     //自己测试发现:这种方式为按行读取;如果有空格或制表符,它会按文本文件中的样子输出
41     string buf;
42     while (getline(ifs, buf)) {    //第一个参数,输入流对象;第二个参数,string对象
43         cout << buf << endl;
44     }
45 
46     //第四种(老师不推荐),一个一个字符读
47     //如果有空格或制表符,它会按文本文件中的样子输出
48     //char c;
49     //while ((c = ifs.get()) != EOF) {    //EOF, end of file, 文件尾,括号里判断内容意思是 如果没有读到文件尾
50     //    cout << c;    //不用endl,它会自己读到回车
51     //}
52     
53     //5. 关闭文件
54     ifs.close();
55 }
56 
57 int main()
58 {
59     test01();
60     return 0;
61 }

(〃>_<;〃)(〃>_<;〃)(〃>_<;〃)

原文地址:https://www.cnblogs.com/wjjgame/p/17154620.html