首页 > 编程语言 >C++黑马程序员——P143-146. 文件操作

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

时间:2023-04-27 23:11:49浏览次数:44  
标签:146 文件 ifs C++ P143 文本文件 include

  • 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 }

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

标签:146,文件,ifs,C++,P143,文本文件,include
From: https://www.cnblogs.com/wjjgame/p/17154620.html

相关文章

  • C/C++会员管理系统[2023-04-27]
    C/C++会员管理系统[2023-04-27]综合设计实例四课题名称:会员管理系统I、题目的目的和要求(2-3人组)随着社会的进步,人们生活水平的提高,各种各样的会员应运而生。各种便民服务的地方为了提高服务粘性,留住顾客往往采用会员制,例如便利店、健身房,生鲜超市、美容美发店等等不一而足......
  • C++第四章课后练习题4-22
    1#include<iostream>2usingnamespacestd;3enumweekday{sunday,monday,tuesday,wednesday,thursday,friday,saturday4};5intmain()6{7inti;8weekdayd=thursday;9cout<<"d="<<d<<endl;10......
  • c++打卡练习(18)
    猜牌术魔术师利用一副牌中的13张黑桃,预先将它们排好后迭在一起,并使牌面朝下。然后他对观众说:我不看牌,只要数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看,魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,他将黑桃A放在桌子上,然后按顺序从上到下数手中的余牌,第二次......
  • c/c++程序中获取当前可执行文件所在的目录路径,使用跨平台的program_location
    c/c++程序中获取当前可执行文件所在的目录路径对于大型工程中,可执行文件中通过c/c++代码获取到当前路径,可以很大方便于工程后续的部署与运维工作。比如说根据当前的可执行文件路径获取到配置文件的路径,然后加载读取配置文件。有了这个能力就不用再在操作系统中配置环境变量来指......
  • C++
    狗的继承完成两个类,一个类Animal,表示动物类,有一个成员表示年龄。一个类Dog,继承自Animal,有一个新的数据成员表示颜色,合理设计这两个类,使得测试程序可以运行并得到正确的结果。 #include<iostream>usingnamespacestd;classAnimal{public:Animal(inty)......
  • c++引用折叠
    目录 一、引用折叠二、示例解析三、参考: 一、引用折叠   由于存在T&&这种万能引用类型,当它作为参数时,有可能被一个左值引用或右值引用的参数初始化,这是经过类型推导的T&&类型,相比右值引用(&&)会发生类型的变化,这种变化就称为引用折叠。1.所有右值引用折叠到右值引......
  • [C++11]左值、右值、左值引用、右值引用小结
     左值和右值左值:指表达式结束后依然存在的持久对象,可以取地址,具名变量或对象右值:表达式结束后就不再存在的临时对象,不可以取地址,没有名字。比如inta=b+c;,a就是一个左值,可以对a取地址,而b+c就是一个右值,对表达式b+c取地址会报错。C++11中右值又由两个概念组成:将亡值和纯......
  • C++ inline
    在C++中,inline关键字用于建议编译器将函数内联到调用它的地方。内联函数是一种优化技术,可以减少函数调用的开销。当一个函数被声明为内联时,编译器会尝试将函数的代码直接嵌入到每个调用该函数的地方,从而避免了函数调用时产生的额外开销,如保存寄存器、设置栈帧等。需要注意的是,inl......
  • 【C++】引用、引用初始化、引用折叠规则
     引用引用就好像存储数据的一块内存区域(变量)的一个名字,定义引用就好像声明了一个变量名并把它绑定到已存在的变量上,变量名附带属性(包括但不限于类型、存储期),变量名附带的属性由声明变量名时使用的声明指定符决定。需要注意的是,用于声明左值引用的&和用于声明右值引用的&&不......
  • 开心档之C++ 预处理器
    C++预处理器预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。所有的预处理器指令都是以井号(#)开头,只有空格字符可以出现在预处理指令之前。预处理指令不是C++语句,所以它们不会以分号(;)结尾。我们已经看到,之前所有的实例中都有 #include 指令。这个宏用于把头......