急,马上给分~高手作答,VC6。0通过很好的程序,为什么在VC7。1下编译时就有错误呢?

krqii 2003-08-19 06:44:09
程序代码
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void main(void)
{
vector <int> num;
int temp;
while(cin>>temp)
num.push_back(temp);
sort(num.begin(),num.end());
for(int i=0;i<num.size();++i)
cout<<num[i]<<endl;
}
错误提示
g:\program\myself\NET\VC\stl1\stl1.cpp(15): fatal error C1010: 在查找预编译头指令时遇到意外的文件结尾

为什么会这样?
怎么预防及设置?
...全文
28 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
krqii 2003-09-03
  • 打赏
  • 举报
回复
接分了
谢谢你们:)
poweruser 2003-08-20
  • 打赏
  • 举报
回复
为什么必须包含
stdafx.h才可以呢?

因为用VC的AppWizard生成的项目会自动为我们选择使用编译预处理选项,所以包括了stdafx就ok了

而我说的第二种解决方法就是不使用预编译头文件,所以就可以不包括stdafx.h了
poweruser 2003-08-20
  • 打赏
  • 举报
回复
stdafx.h的作用我说了是为了预编译头文件

对应于stdafx.h 则有一个 stdafx.cpp,其内只是 #include "stdafx.h"。
作用是是让 stdafx.cpp 编译出一个 stdafx.obj,成为所谓的 "pre-compile-header"
这样就可大幅降低第二次的编译所需时间(因为标准 MFC headers不需再编译一次)。

ok?
poweruser 2003-08-20
  • 打赏
  • 举报
回复
原因基本上如mintwlf(Programmer) 所说
mintwlf 2003-08-20
  • 打赏
  • 举报
回复
stafx.h包括了Win32应用程序常用的函数及库的头文件!
可能你的哪个函数调用需要里面的头文件吧!
krqii 2003-08-19
  • 打赏
  • 举报
回复
3Q问题解决了
马上结帐
还有一个疑问,望解释一下,可以吗?
为什么必须包含
stdafx.h才可以呢?
能解释一下吗?
谢谢:)
poweruser 2003-08-19
  • 打赏
  • 举报
回复
因为vc默认使用编译预处理文件,此问题可以有两种解决办法:
1.使用vc提供的模板建立一个空工程,然后再把这些代码加进去
用vc的模板建立的工程会包括stdafx.h头文件

2.不使用编译预处理
打开project菜单下面的property对话框,从左边的树状列表中选择C++,再选中其下的Precompiled Header,在右边的列表框中将Create/Use Precompiled Headers修改为Not Using Precompiled Headers,然后再编译运行就可以了

祝你好运!

7,540

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 VC.NET
社区管理员
  • VC.NET社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧