下面的程序应该从文件中读取一堆整数并计算出它们的平均值:
#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!
我总是跳过计算和输出文件生成部分,我做错了什么?
感谢您的帮助,
ħ
答案 0 :(得分:4)
打开文件后,添加assert
语句以确保路径正确。
ifstream fin( "mydata.txt" );
assert(fin.good());
如果断言失败,您就会知道文件路径可能有问题。
答案 1 :(得分:2)
尝试用绝对路径替换mydata.txt
答案 2 :(得分:1)
我猜mydata.txt与可执行文件不在同一个目录中,代码适用于我