C++ in Plain English Book示例不编译

use*_*661 0 c++ ide

我是一个想要学习C++的新手.我有一本书,提供了很多例子和概念.本书的第一个例子之一不使用Quincy 2005进行编译.这是代码还是IDE的错误?

这个例子在这里:

#include <stdio.h>

void main (){



int date = 10, d2=15;
float temp = 45.0, t2=33.5;


printf("On Dec. %d, temperature was %f.\n", date, temp);
printf("On Jan. %d, temperature was %f.\n", d2, t2);


}
Run Code Online (Sandbox Code Playgroud)

不幸的是,IDE声明:: main必须返回一个整数.有任何想法吗?

这个例子看起来更像是C,这只是过时了吗?

Mah*_*dsi 5

这是你正在使用的一本非常糟糕的书.这是一个C示例(不是那里的单个C++特性),并且不会在强制执行正确编码实践的现代C++编译器上编译.

正确的代码如下所示:

#include <stdio.h>

int main (int argc, char **argv)
{
    int date = 10, d2=15;
    float temp = 45.0, t2=33.5;


    printf("On Dec. %d, temperature was %f.\n", date, temp);
    printf("On Jan. %d, temperature was %f.\n", d2, t2);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

注意:

  • 返回类型main已更改voidint
  • main 有两个参数:命令行参数的数量,以及它们的c字符串值
  • main 现在返回退出代码

你确定它是一本C++书吗?

  • `main`可以不带参数而且没有return语句,只要返回类型为`int`,实现可能有其他形式的`main`. (2认同)