c++讀寫檔案和測試程式已耗用時間的例子

來源:互聯網
上載者:User

例子完整代碼:http://zhmster.googlepages.com/ReadFile.rar

例子功能簡介:程式中google.dic是我的googleIME的詞庫。

本段代碼功能:就是把這個檔案重新按照詞頻排序。把詞頻高的放在前面。

 

代碼是我一個學生作品:我做了小部分修改。

 

代碼示範了如下的技術:

1. c++讀寫檔案

2. 如何測試一個程式的已耗用時間。程式中calctime類可以複用。大家只要在程式開始聲明一下即可。

3. 重載str_line這個類的<操作符。以此可以利用鏈表的排序函數來排序。

 

#include <list>
#include <string>
#include <iostream>
#include <fstream>   
#include <algorithm>
#include <stdio.h>
#include <time.h>

using namespace std; 
#pragma warning ( disable : 4786 )

struct str_line 
{
    string str_first;
    int int_second;
    char str_third[1000];
    bool operator < ( str_line strline_other)
    {
        if( int_second < strline_other.int_second)
            return false;
        else
            return true;
    }
} strline;

class calctime
{
public:
    clock_t start, finish;
    double duration;
    void showResult()
    {
        duration = (double)(finish - start) / CLOCKS_PER_SEC;
        printf( "%.5f seconds\n", duration );
    }
    calctime()
    {
        start = clock();
    }
    ~calctime()
    {
        finish = clock();
        showResult();
    }
};

void main()
{

        calctime calc;
        ifstream in_file("google.dic");
        ofstream out_file("out.txt");
        list<str_line> save_date_list;
        while ( in_file>>strline.str_first 
            && in_file>>strline.int_second
            && in_file.getline(strline.str_third,1000))
        {
            save_date_list.push_back(strline);
        }
        save_date_list.sort();    
        list<str_line>::iterator iter = save_date_list.begin(); 
        for( ; iter!= save_date_list.end(); iter++ )
        {
            //str_line strlineTemp = *iter;
            out_file<< iter->str_first <<"   "
                << iter->int_second <<"   "
                << iter->str_third << "\n";    
        }

}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.