使用文件计算程序的执行次数

时间:2011-12-26 08:09:22

标签: c++ count execution

我试图使用下面的代码查找代码执行的次数。但它不起作用。

#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

int main()
{ 
    fstream outputFile;
    outputFile.open("count.txt");

    int count;
    outputFile>>count;
    count = count + 1;
    cout<<count;
    outputFile <<count << endl;
    outputFile.close();
    getch();
    return 0;
}

可能是什么问题?

2 个答案:

答案 0 :(得分:2)

#include <iostream>
#include <fstream>
#include <conio.h>

using namespace std;

int main()
{ 
    int count;

    ifstream inputFile("count.txt");
    inputFile >> count;
    inputFile.close();

    count ++ ;

    ofstream outputFile("count.txt");
    outputFile << count + 1 << endl;
    outputFile.close();

    cout << count;
    getch();

    return 0;
} 

答案 1 :(得分:1)

我建议将(1)读取文件,(2)操作数据和(3)更新文件的问题分开。

您还应该引入一些错误处理并初始化变量。

以下是一些可以帮助您入门的代码:

#include <iostream>
#include <fstream>

int main()
{
    using namespace std;

    const char filename[] = "count.txt";
    int count = 0;

    {
        ifstream inputFile(filename);

        if (!(inputFile >> count))
        {
            cerr << "An error occurred while reading the persisted count" << endl;
        }
    }

    ++count;

    cout << count;

    {
        ofstream outputFile(filename);
        if (!(outputFile << count << endl))
        {
            cerr << "An error occurred while writing the persisted count" << endl;
        }
    }
}

但这还没有结束。我上面提到的每个问题都应该被提取到单独的函数中。

然后你必须考虑线程安全。使用锁定这很容易。

但是,当您同时执行的多个应用实例时会发生什么?你需要为此做一些基于文件的锁定。

如果你想在多台机器上计算执行次数,你需要解决一个更有趣的问题。