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~~就酱紫了哈。

时间: 2024-10-18 06:51:14

c++ 高效文本读写的相关文章

《Linux Shell脚本攻略》 笔记 第四章:高效文本处理

<Linux Shell脚本攻略> 笔记 第四章:高效文本处理 1.IP地址的正则表达式: [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} 2.grep用法 //在多级目录中对文本进行递归检索 [[email protected] program_test]# grep "yang" ./ -Rn ./test.txt:6:laoyang ./right.txt:1:1 yang man //忽略大小写匹配 [[email pr

(4)文本挖掘(一)——准备文本读写及对Map操作的工具类

文本挖掘是一个对具有丰富语义的文本进行分析,从而理解其所包含的内容和意义的过程.文本挖掘包含分词.文本表示.文本特征选择.文本分类.文本聚类.文档自动摘要等方面的内容.文本挖掘的具体流程图可下图所示: 我的项目是以复旦大学中文语料库和路透社英文语料库为数据集的,都是有类别的两层目录文本集. 不管你要做什么,你首先都要先读取文本,为了方便后面的操作,我写了几个工具类,这里先将文本读取Reader类.文本写入Writer类和对Map的各种操作MapUtil类. Reader import java.

c#的文本读写

计算机在最初只支持ASCII编码,但是后来为了支持其他语言中的字符(比如汉字)以及一些特殊字符(比如€),就引入了Unicode字符集.基于Unicode字符集的编码方式有很多,比如UTF-7.UTF-8.Unicode以及UTF-32.在Windows操作系统中,一个文本文件的前几个字节是用来指定该文件的编码方式的. 如果你使用NotePad或WordPad来打开一个文本文件,你并不用担心该文件的编码方式,因为这些应用程序会先读取文件的前几个字节来确定该文件的编码方式,然后用正确的编码将文本中

android文件的写入与读取---简单的文本读写context.openFileInput() context.openFileOutput()

最终效果图,点击save会保存到文件中,点击show会从文件中读取出内容并显示. main.xml [xhtml] view plain copy <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:<a href="http://lib.csdn.net/base/15" class='replace_word' title="Android知识

C++ 文本读写

写文件: ofstream of; of.open("test.txt"); string content = "abcd"; of.write(content.c_str(),content.length()); of<<endl; of<<"1234"; of.close(); 读文件:

python_py2和py3读写文本区别

python2和python3的区别? python 2  str             对应      python3 bytes python 2 uincode            对应      pyhon3 str py2 字符串直接是2进制,unicode编码需要前面加上u py3 2进制需要前面加上 b 文本读写区别? py2 字符可以直接写到文件中,unicode需要编码,再写入文件,读文件,需要解码 py3 打开文件,指定编码格式自动编码,写入文件不需要编码和解码

【C/C++学院】0826-文件重定向/键盘输入流/屏幕输出流/字符串输入输出/文件读写简单操作/字符文件读写二进制与文本差别/get与getline挖掘数据/二进制与文本差别/随机位置/多线程初级

文件重定向 #include<iostream> using namespace std; void main() { char str[30] = { 0 }; cin >> str; cout << str; system(str); cerr << "error for you"; cin.get(); cin.get(); } 键盘输入流 #include<iostream> #include <stdlib.h

利用Spring.Net技术打造可切换的分布式缓存读写类

利用Spring.Net技术打造可切换的Memcached分布式缓存读写类 Memcached是一个高性能的分布式内存对象缓存系统,因为工作在内存,读写速率比数据库高的不是一般的多,和Radis一样具有高效的读写和分布式的优势,上一篇博文<Memcached在Windows下的配置和使用>已经对介绍过它在windows上的配置和使用. 新建ICacheWriter类--CacheWriter的接口,以达到通过配置文件可以切换缓存读写方式,例如,缓存读写也可以通过httpruntime.cach

二进制与文本格式

1. 文本文件与二进制文件的定义 大家都知道计算机的存储在物理上是二进制的,所以文本文件与二进制文件的区别并不是物理上的,而是逻辑上的.这两者只是在编码层次上有差异. 简单来说,文本文件是基于字符编码的文件,常见的编码有ASCII编码,UNICODE编码等等.二进制文件是基于值编码的文件,你可以根据具体应用,指定某个值是什么意思(这样一个过程,可以看作是自定义编码). 从上面可以看出文本文件基本上是定长编码的(也有非定长的编码如UTF-8),基于字符嘛,每个字符在具体编码中是固定的,ASCII码