• Thinking in C++ 课后习题自己实现 第二章


      最近在看Thinking in C++,今天下午自己实现了第二章的课后习题。虽然看起来是一件微不足道的小事情,但是对于我来说,这是成长路上的一点点小积淀。我的梦想是有一天可以在程序的世界里自由驰骋,做出一些属于自己的东西。现在只是刚刚起步,还需要坚持不懈的努力。把自己实现的代码贴出来留作纪念。这些代码在vs2015上编译通过。

     1 /*
     2 Thinking in C++ 2-3
     3     本程序的目的是统计打开文件中以空格隔开的单词个数,这里直接使用了>> 操作符一次取出一个单词
     4 直到文件结束这样就直接计算出来文件中单词的个数
     5 */
     6 
     7 #include<iostream>
     8 #include<fstream>
     9 #include<vector>
    10 #include<string>
    11 
    12 using namespace std;
    13 
    14 int main()
    15 {
    16     int WordNumber = 0;
    17     ifstream in("Test.txt");//打开Test.txt文件
    18     if (!in)
    19     {
    20         cout << "Open file error!" << endl;
    21     }
    22 
    23     string words;
    24 
    25     while (in >> words)//in >> words 一次取出一个单词直到文件结束
    26     {
    27         WordNumber++;
    28     }
    29     cout << "单词数为" << WordNumber << endl;
    30     return 0;
    31 }
     1 /*
     2     Thinking in C++ 2-4
     3     本程序通过 >> 操作符每次取出一个单词与所要查找的单词去匹配,
     4 找到相同的单词计数器加一,统计所要查找的单词的个数
     5 */
     6 
     7 
     8 #include<iostream>
     9 #include<fstream>
    10 #include<string>
    11 
    12 using namespace std;
    13 
    14 int main()
    15 {
    16     int SpecificWordNumber = 0;
    17     ifstream in("Test.txt");
    18     if (!in)
    19     {
    20         cout << "Open file Error!" << endl;
    21     }
    22 
    23     string SomeWord;
    24     string SpecificWord;
    25     cout << "请输入要查找的单词 :" << endl;
    26     cin >> SpecificWord;
    27 
    28     while (in >> SomeWord)
    29     {
    30         if (SpecificWord == SomeWord)
    31         {
    32             SpecificWordNumber++;
    33         }
    34     }
    35 
    36     cout << "SpecificWordNumber = " << SpecificWordNumber << endl;
    37 
    38     return 0;
    39 }
      1 /*
      2 Thinking in C++ 2-5
      3     本程序通过逐行读取文件中的内容,然后将文件中的内容进行正序,和反序打印出来,
      4 这里用到了vector的size()函数。
      5 */
      6 #include<iostream>
      7 #include<fstream>
      8 #include<vector>
      9 #include<string>
     10 
     11 using namespace std;
     12 
     13 int main()
     14 {
     15     vector<string> v;
     16     ifstream in("Test.txt");
     17 
     18     string line;
     19     while (getline(in, line))
     20     {
     21         v.push_back(line);
     22     }
     23     cout << "正序打印:" << endl;
     24     for (int i = 0; i < v.size(); i++)
     25     {
     26         cout << i << ": " << v[i] << endl;
     27     }
     28     cout << "反序打印:" << endl;
     29     for (int i = v.size() -1; i >= 0; i--)
     30     {
     31         cout << i << ": " << v[i] << endl;
     32     }
     33     return 0;
     34 }
     35 
     36 
     37 /*
     38     Tinking in C++ 2-6
     39     本程序是将文件中每行数据连接起来变成一行,也就是一个字符串,用string 的 + 
     40 就可以轻松实现
     41 */
     42 
     43 #include<iostream>
     44 #include<string>
     45 #include<fstream>
     46 #include<vector>
     47 
     48 using namespace std;
     49 
     50 int main()
     51 {
     52     vector<string> v;
     53 
     54     ifstream in("Test.txt");
     55     if (!in)
     56     {
     57         cout << "File open Error!" << endl;
     58     }
     59     string line;
     60     while (getline(in, line))
     61     {
     62         v.push_back(line);
     63     }
     64 
     65     string str;
     66 
     67     for (int i = 0; i < v.size(); i++)
     68     {
     69         str += v[i];
     70     }
     71     cout << "连接成单独的字符串的内容是: " << endl;
     72     cout << str << endl;
     73     return 0;
     74 }
     75 
     76 
     77 
     78 
     79 /*
     80     Thinking in C++ 2-7
     81     本程序功能一次显示一行数据,直到用户再次输入回车显示下一行数据
     82 */
     83 
     84 #include<iostream>
     85 #include<fstream>
     86 #include<vector>
     87 #include<string>
     88 
     89 using namespace std;
     90 
     91 int main()
     92 {
     93     vector<string> v;
     94     ifstream in("Test.txt");
     95     if (!in)
     96     {
     97         cout << "Open file Error!" << endl;
     98     }
     99 
    100     string line;
    101 
    102     while(getline(in, line))
    103     {
    104         v.push_back(line);
    105     }
    106     int i = v.size() - 1;
    107     int j = 0;
    108     char GetChar;
    109     cout << v[j];
    110     while (i)
    111     {
    112         cout << "请输入回车显示下一行数据:";
    113         GetChar = getchar();
    114         if (GetChar == 10)
    115         {
    116             cout << v[++j] << endl;
    117         }
    118         i--;
    119     }
    120     return 0;
    121 }
    我登高只为了看的更远,如果看到的景色不如人意,我将选择继续攀登!
  • 相关阅读:
    随机验证码生成
    python之map和filter
    Json学习笔记
    动态规划求区间最值问题RMQ(Range Minimum/Maximum Query)
    积水问题
    5亿个数找中位数
    Linux下进程间通信:命名管道mkfifo
    Trie树总结
    树的公共祖先问题LCA
    类文件结构
  • 原文地址:https://www.cnblogs.com/zkhm123/p/5730465.html
Copyright © 2020-2023  润新知