无法从文件中读取值

时间:2010-12-02 16:32:01

标签: c++ fstream

下面的程序应该从文件中读取一堆整数并计算出它们的平均值:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
using namespace std;

int main( int argc, char** argv )
{
    ifstream fin( "mydata.txt" );
    int i, value, sum = 0;

    for ( i = 0; fin >> value; i++ )
    {
        sum += value;
    }

    if ( i > 0 )
    {
        ofstream fout( "average.txt" );
        fout << "Average: " << ( sum / i ) << endl;
    }
    else
    {
        cerr << "No list to average!" << endl;
    }

system( "PAUSE" );

}

文件mydata.txt存在于同一目录中并包含1 2 3 4 5,但输出始终为:No list to average!

我总是跳过计算和输出文件生成部分,我做错了什么?

感谢您的帮助,

ħ

3 个答案:

答案 0 :(得分:4)

打开文件后,添加assert语句以确保路径正确。

ifstream fin( "mydata.txt" );
assert(fin.good());

如果断言失败,您就会知道文件路径可能有问题。

答案 1 :(得分:2)

尝试用绝对路径替换mydata.txt

答案 2 :(得分:1)

我猜mydata.txt与可执行文件不在同一个目录中,代码适用于我