代码是c++ primer pluse里面的8.8。
#include<iostream>
#include<fstream>
#include<cstdlib>
using namespace std;
void file_it(ostream & os, double fo, const double fe[], int n);
const int LIMIT = 5;
int main()
{
ofstream fout;
const char *fn = "ep-data.txt";
fout.open(fn);
if (!fout.is_open())
{
cout << "can't open " << fn << ". bye.\n";
exit(EXIT_FAILURE);
}
double objective;
cout << "enter the focal lenght of your telescope objective in mm:";
cin >> objective;
double eps[LIMIT];
cout << "enter the focal lengths, in mm , of " << LIMIT << " eyepieces:\n";
for (int i = 0; i < LIMIT; i++)
{
cout << "eyepiece #" << i + 1 << ": ";
cin >> eps[i];
}
file_it(fout, objective, eps, LIMIT);
file_it(cout, objective, eps, LIMIT);
cout << "done!\n";
system("pause");
return 0;
}
void file_it(ostream & os, double fo, const double fe[], int n)
{
ios_base::fmtflags initial;
initial = os.setf(ios_base::fixed);
os.precision(0);
os << "focla length of objective: " << fo << " mm\n";
os.setf(ios_base::showpoint);
os.precision(1);
os.width(12);
os << "f.l. eyepiece";
os.width(15);
os << "magnifiction" << endl;
for (int i = 0; i < n; i++)
{
os.width(12);
os << fe[i];
os.width(15);
os << int(fo / fe[i] + 0.5) << endl;
}
os.setf(initial);
}
同一项目下有一个8.8.cpp以及test.cpp
在8.8.cpp下运行就会报错,而在test.cpp下运行就正常。
(运行的时候其它cpp都注释掉了)