拜拜 发表于 2009-11-10 14:02

会用VS2008的来帮个忙

#include <iostream>
using namespace std;
viod; main() {
        double *p;
        p = new double;
        for (int i=0; i<3; i++)
                cin>>*(p+i);
        for (int i=0; i<3; i++)
                cout<<*(p+i)<<" ";
        delete p;
}

1>------ 已启动生成: 项目: myfile, 配置: Debug Win32 ------
1>正在编译...
1>mycpp.cpp
1>d:\users\roy\documents\visual studio 2008\projects\myfile\myfile\mycpp.cpp(3) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>d:\users\roy\documents\visual studio 2008\projects\myfile\myfile\mycpp.cpp(4) : error C4430: 缺少类型说明符 - 假定为 int。注意: C++ 不支持默认 int
1>生成日志保存在“file://d:\Users\Roy\Documents\Visual Studio 2008\Projects\myfile\myfile\Debug\BuildLog.htm”
1>myfile - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

这是书上的例题,怎么会不能运行?关键谁能告诉我怎么修复?明明声明了double型指针,i也声明为int,还有什么地方没声明?求解,谢谢

好人修電腦 发表于 2009-11-10 14:10

本帖最后由 好人修電腦 于 2009-11-10 14:14 编辑

viod; main()

void main()

-,-

------------------------------------------------

不對,還是不對,C++的main函數返回值應該是int

int main(){
......
return 0;
}

风の小包子 发表于 2009-11-10 14:13

viod; main()

这问题和vs2008好像没啥关系

Netheril 发表于 2009-11-10 14:15

main 的正确声明方式是 int main() ,另外最后一行的 delete p; 应该是 delete[] p; 。这一类小毛刺在多数情况下没什么问题,不过万一因此陷进去了,你就等着被坑杀吧。

拜拜 发表于 2009-11-10 14:16

这不是我想出来的,我开始也没加,但VS提示我加

1>------ 已启动生成: 项目: myfile, 配置: Debug Win32 ------
1>正在编译...
1>mycpp.cpp
1>d:\\users\\roy\\documents\\visual studio 2008\\projects\\myfile\\myfile\\mycpp.cpp(3) : error C2146: 语法错误 : 缺少“;”(在标识符“main”的前面)
1>生成日志保存在“file://d:\\Users\\Roy\\Documents\\Visual Studio 2008\\Projects\\myfile\\myfile\\Debug\\BuildLog.htm”
1>myfile - 1 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========

拜拜 发表于 2009-11-10 14:25

3L漆黑之牙果然强,非常感谢~~

明明应该使用viod就可以无需返回值了,VS2008竟然不行

风の小包子 发表于 2009-11-10 14:26

// cc.cpp : 定义控制台应用程序的入口点。
//

#include \"stdafx.h\"
#include <iostream>
using namespace std;
随便搞了个

int _tmain(int argc, _TCHAR* argv[])
{
       double *p;
      p = new double;
      for (int i=0; i<3; i++)
                cin>>*(p+i);
      for (int i=0; i<3; i++)
                cout<<*(p+i)<<\" \";
      delete p;

           return 0;
}

1>------ 已启动全部重新生成: 项目: cc, 配置: Debug Win32 ------
1>正在删除项目“cc”(配置“Debug|Win32”)的中间文件和输出文件
1>正在编译...
1>stdafx.cpp
1>正在编译...
1>cc.cpp
1>正在编译资源清单...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.All rights reserved.
1>正在链接...
1>正在嵌入清单...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.All rights reserved.
1>生成日志保存在“file://c:\\Documents and Settings\\aps-lzi\\桌面\\cc\\cc\\Debug\\BuildLog.htm”
1>cc - 0 个错误,0 个警告
========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========

zs1109 发表于 2009-11-10 16:39

我说,不是void么.....
写成viod了吧

vampire219 发表于 2009-11-10 16:47

vs2008的c++编的程序还要安装runtime redistribute

lumina 发表于 2009-11-10 21:51

3L漆黑之牙果然强,非常感谢~~

明明应该使用viod就可以无需返回值了,VS2008竟然不行
拜拜 发表于 2009-11-10 14:25 http://bbs.saraba1st.com/images/common/back.gif
viod
void
页: [1]
查看完整版本: 会用VS2008的来帮个忙