• 重装 发现 dw的代码 @stl


    如果不是今天整理代码 ,就不知道6个月前,DW 已经在map 等等stl上面的造诣了

    这才是真正的编程,而不是站在 一些人的肩膀上 涂改。。

     

     

    // dw.cpp : 定义控制台应用程序的入口点。

    //

     

    #include "stdafx.h"

    #include "test.h"

     

     

    #include <map>

    #include <vector>

    #include <iostream>

    #include <fstream>

    #include <string>

    #include <stdexcept>

    #include <sstream>

     

    using std::map; using std::string; using std::vector;

    using std::ifstream; using std::cout; using std::endl;

    using std::getline; using std::make_pair;

    using std::runtime_error; using std::istringstream;

     

    ifstream& open_file(ifstream&, const string&);

     

    int main(int argc, char **argv)

    {

        // map to hold the word transformation pairs:

        // key is the word to look for in the input; value is word to use in the output

        map<string, string> trans_map;

        string key, value;

     

        if (argc != 3)

            throw runtime_error("wrong number of arguments");

     

        // open transformation file and check that open succeeded

        ifstream map_file;

        if (!open_file(map_file, argv[1]))

            throw runtime_error("no transformation file");

        // read the transformation map and build the map

        while (map_file >> key >> value)

            trans_map.insert(make_pair(key, value));

    {

        // ok: let's display it

        map<string, string>::iterator map_it = trans_map.begin();

     

        //cout << "Here is our transformation map: \n\n";

        while (map_it != trans_map.end()) {

            cout << "key: "   << map_it->first;

            if (map_it->first.size() == 1)

                cout << "       ";

            if (map_it->first.size() == 3)

                cout << "     ";

            else if (map_it->first.size() == 4)

                cout << "    ";

            else if (map_it->first.size() == 5)

                cout << "   ";

            cout << "value: " << map_it->second << endl;

            ++map_it;

        }

        cout << "\n\n";

     

        {  // this block just produces the vector so that we can print it

           // for the book

        cout << "Here is our original string input:\n\n";

        // read some text to transform

        ifstream input;

        if (!open_file(input, argv[2]))

            throw runtime_error("no input file");

        string word;

        while (getline(input, word))

             cout << word << endl;

        cout << "\n\n\n";

        input.close(); input.clear();

        }

    }

     

        // ok, now we're ready to do the transformations

        // open the input file and check that the open succeeded

        ifstream input;

        if (!open_file(input, argv[2]))

            throw runtime_error("no input file");

     

        string line;   // hold each line from the input

     

        // read the text to transform it a line at a time

        while (getline(input, line)) {

            istringstream stream(line);  // read the line a word at a time

            string word;

            bool firstword = true;  // controls whether a space is printed

            while (stream >> word) {

               // ok: the actual mapwork, this part is the heart of the program

               map<string, string>::const_iterator map_it =

                                   trans_map.find(word);

     

               // if this word is in the transformation map

               if (map_it != trans_map.end())

                   // replace it by the transformation value in the map

                   word = map_it->second; 

               if (firstword)

                   firstword = false;

               else

                   cout << " ";  // print space between words

               cout << word;

            }

            cout << endl;        // done with this line of input

        }

        return 0;

    }

     

     

    /*

    int _tmain(int argc, _TCHAR* argv[])

    {

           int a = 10, b = 20;

           myadd(a,b);

           test(10);

           while(1);

           return 0;

    }

    */

     

    d:\Documents and Settings\牛牛\My Documents\Visual Studio 2005\Projects\dw\dw

    2011年 7月dw的编程水平啊!!!

  • 相关阅读:
    基于vue2.0 +vuex+ element-ui后台管理系统:包括本地开发调试详细步骤
    require.js实现js模块化编程(二):RequireJS Optimizer
    require.js实现js模块化编程(一)
    树型权限管理插件:jQuery Tree Multiselect详细使用指南
    表格组件神器:bootstrap table详细使用指南
    后台管理系统中的重点知识大全
    Ajax最详细的参数解析和场景应用
    npm常用命令小结
    详解javascript,ES5标准中新增的几种高效Object操作方法
    git入门学习(二):新建分支/上传代码/删除分支
  • 原文地址:https://www.cnblogs.com/titer1/p/2316007.html
Copyright © 2020-2023  润新知