zoukankan      html  css  js  c++  java
  • 重装 发现 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的编程水平啊!!!

  • 相关阅读:
    高级程序员应该具备什么能力
    二 八 定 律
    二八定律全面分析
    Java 网络爬虫获取网页源代码原理及实现
    vijosP1371 方程的解
    vijosP1413 Valentine’s Present
    vijosP1289 老板娘的促销方案
    vijosP1092 全排列
    vijosP1049 送给圣诞夜的礼品
    vijosP1210 盒子与球
  • 原文地址:https://www.cnblogs.com/titer1/p/2316007.html
Copyright © 2011-2022 走看看