代码是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都注释掉了)
不要把一堆源代码放在一个项目下面,相反,每次写程序都应该新建一个项目(project)而不是在原有项目中直接添加cpp
你这个错误是链接器设置的程序入口点错误,需要在项目-属性-链接器里面配置,修改为win32:console系统,以及你的main函数。
但是更简单的是,直接新建一个项目,再把这个代码贴进去。
我的现在也是出现这样情况。