Main必须返回值

时间:2016-01-29 21:09:33

标签: c++

我一直在研究“编程:使用C ++的原理和实践”一书,这个例子旨在说明如何在类型转换中丢失数据。但是当我试图执行它时,它一直告诉我'Main':必须返回一个值。我尝试使用“return 0;”在while循环的大括号之后,但它在“Unresolved externals”周围出现了错误。

我已经将书中的代码复制到Visual Studio中,我复制的其他所有内容都按预期工作了 - 有人能告诉我如何解决这个问题吗?我不知道为什么这个具体的例子正在发生,或者如何让它停止要求返回值。

对不起,如果这是愚蠢的,我是非常缺乏经验,我已经尝试谷歌搜索答案,但建议像“返回0”的解决方案不起作用:)!

#include "std_lib_facilities.h"

int main()
{
    double d = 0;

    while (cin >> d)
    {

        int i = d;
        char c = i;
        int i2 = c;
        cout << "d==" << d
        << " i==" << i
        << " i2==" << i2
        << " char(" << c << ")\n";
    }
}

2 个答案:

答案 0 :(得分:3)

  

我尝试使用&#34;返回0;&#34;在while循环的大括号之后,然后它在&#34;未解析的外部&#34;周围出错。

通过修复第一个问题,发现了一个单独的,无关的问题。添加返回,然后处理未解析的外部错误。

答案 1 :(得分:-1)

如果这是您的整个计划,那么您未解决的外部很可能是iostream。您需要包含它并使用正确的命名空间。

请考虑以下代码:

#include <iostream>

using namespace std;

int main() {
   cout << "Hello World!" << endl;
   return 0;
}

更好的是,放弃using语句并使用std::cout,这样您就不必担心名称空间冲突了。请参阅此问题Why is “using namespace std;” considered bad practice?

#include <iostream>

int main() {
   std::cout << "Hello World!" << std::endl;
   return 0;
}