第六十二讲 初识标准库(1)

还是老规矩,我们带上问题上路,关于问题,其实真没啥好问题,所以我在有道词典上看到一篇文章,随手摘了下来,当然,为了更加能够具有教学的意义,所以,我只是随意摘了几段下来,分别存在几个文本里,然后我们将几个文本的文件读取,当然,我们不是读取数据这么简单,如果只想读这些内容的话,我们直接打开文本查看不久好了吗?折腾这么个大弯子,我有毛病了吧。那么我们读取这些数据干嘛呢?
我们分别读取这些数据之后,然后将他们合并,拷贝到一个文件中,再说一遍,我们这里不是想要查看内容,也不是想要展示什么技术,如果说,当然,或许我们真会用到这些技术呢,这也许是以后的后话了(大家工作中或许会用到),现在,我们要做的是一件极为无聊的事。

————————————–
1)把每个文件的内容都拷贝到一个数组里。
2)将所有的小数组合并成一个大数组。
3)我们排序这些单词(以字典序)。
4)去掉所有重复的单词。
5)再按照长短排序。
6)计算超过某个数字的单词个数。
7)去掉任何没有语义的中性词(and,if,or,but等等)。
7)打印出最后所剩下的。

———————————————

这听起来好像有些复杂,要完成他或许要花费不少的精力,当然,如果我们不使用标准库的话,所以大家今天可以带着这个问题去思考,明天我们来进一步完成,今天,我们来看看怎么读取这些文件,然后把文件内容储存于另一个文件之中,要实现这个很简单,所以我直接贴上代码(如果屏幕小代码看起不舒服的话可以考虑横屏看,有些时候我们代码比较长看起很乱不整齐的时候,把手机横屏过来就舒服多了)
—————————————–
#include <vector>
#include <string>
#include <iterator>
#include <numeric>
#include <algorithm>
#include <iostream>
#include <
fstream>
using namespace std;


int main(){

typedef vector<string>my_Text;

//为了书写起来方便,我们用my_Text代替vector<string>

my_Text Array_Text;


my_Text my_Array;


string temp;


while (cin>>temp &

&

temp != "

q"

)

{

my_Array.push_back(temp);


}

my_Text::iterator it = my_Array.begin();


ofstream outFile("

out.txt"

);


while (it != my_Array.end()){

ifstream inFile(*it);


if (inFile.fail())

outFile <<"

Unable open file:"

<<*it <<endl;


string str;


while (getline(inFile, str, ''))

Array_Text.push_back(str);


inFile.close();


it++;


}

it = Array_Text.begin();


while (it != Array_Text.end())

outFile <<*it++ <<"

"

;


outFile.close();


return 0;


}
————————————–

第六十二讲 初识标准库(1)


我们把5个txt的文件都放进一个文件里面(ofstream outFile("

out.txt"

)如果没有该文件,outFile会自动创建该文件),为了演示,我把刚创建的文件删了,再运行一遍,我们来看看结果:

第六十二讲 初识标准库(1)

今天我们就先完成这个就够了,余下的留给大家思考,我们下一讲继续研究下一个问题。

=====================

回复D直接查看目录

原文始发于微信公众号(

C/C++的编程教室

):第六十二讲 初识标准库(1)

|

发表评论