zoukankan      html  css  js  c++  java
  • c++ 高效文本读写

        上数据结构课,做project,数据老师要求我们多做测试,而文本文件可以有效记录这些东东,这样我想起了文件的读写,下面是渣渣我个人的一些想法,大神们看见有错的,尽管指出(orz~~~囧,木有人看我的呀啊啊啊啊)。

        当测试数据很多的时候,命令行往往不能全部显示测试数据,这样就要求我们把他们导出至文本文件里。

        下面是个简单的例子:

     1 #include <iostream>
     2 #include <fstream>
     3 using namespace std;
     4 
     5 int main() {
     6     ofstream cout;
     7     cout.open("out.txt");
     8     
     9     cout << "hello world" << endl;
    10     
    11     cout.close(); 
    12     return 0;
    13 } 

           但是,这里有个缺点就是,当关闭文件重新往文件导入数据时,会把之前的数据覆盖,这在多个.cpp文件反复导出数据时很致命,因为这只能让我们看到最后导出的结果,而忽略掉中间一些过程,而下面这个文件数据导出很好地解决了这个问题,它可以有效地往文件导出数据而不覆盖。

        具体代码如下:

     1 #include <iostream>
     2 #include <fstream>
     3 using namespace std;
     4 
     5 int main() {
     6     ofstream cout;
     7     cout.open("out.txt", ostream::app);
     8     
     9     cout << "hello world" << endl;
    10     
    11     cout.close(); 
    12     return 0;
    13 } 

           既然说了数据地导出,那就简单说说数据地导入吧(其实是我不熟悉罢了orz~~~囧)。刚才两个代码若在同一个目录下执行过的话,那么会在同目录下产生一个out.txt文件,并且文件里会有两行相同的"hello world",那就我们就用这个文件来实例下文件的导入吧,具体代码如下:

     1 #include <iostream>
     2 #include <fstream>
     3 using namespace std;
     4 
     5 int main() {
     6     ifstream cin;
     7     cin.open("out.txt");
     8     string str[2];    //因为是两行hello world
     9     for (int i = 0; i < 2; i++)
    10         getline(cin, str[i]);    //文件导入至程序中
    11     for (int i = 0; i < 2; i++)
    12         cout << str[i] << endl;  //输出导出后的结果
    13 
    14     cin.close();
    15     return 0;
    16 }

             PS.为什么我一直用导入导出,而不用读写这些,(⊙o⊙)…英文读写这词我总是混淆,导入导出好理解些,hhhhhhh~~就酱紫了哈。

  • 相关阅读:
    用C#做成的程序如何打包部署,在其他PC机运行
    ZeroMQ——一个轻量级的消息通信组件 C#
    Google Protocol Buffers 快速入门(带生成C#源码的方法)
    【转】如何一直保持测试工作的热情
    【转】关于什么是测试专家的讨论
    释放对某端口的占用
    Android端手机测试体系
    【转】减少缺陷漏测的系统方法体系思考(10年经验的反思)
    【转】3种类型的测试专家之路选择
    【转】手机应用软件测试点汇总
  • 原文地址:https://www.cnblogs.com/winray/p/4102685.html
Copyright © 2011-2022 走看看