Main 必须返回一个值

Main must return a value

本文关键字:一个 返回 Main      更新时间:2023-10-16

我一直在阅读"编程:使用C++的原则和实践"一书,这个例子旨在说明在类型转换中如何丢失数据。但是当我尝试执行它时,它一直告诉我"Main":必须返回一个值。我尝试在 while 循环的大括号后使用"return 0;",但随后它在"未解析的外部"周围出现错误。

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

抱歉,如果这很愚蠢,我非常缺乏经验,我尝试在谷歌上搜索答案,但建议的解决方案,如"return 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";
    }
}

我尝试在 while 循环的大括号后使用"return 0;",但随后它在"未解析的外部"周围出现错误。

这是一个单独的、不相关的问题,通过修复第一个问题而发现。添加返回,然后处理未解决的外部错误。

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

请考虑以下代码:

#include <iostream>
using namespace std;
int main() {
   cout << "Hello World!" << endl;
   return 0;
}

更好的是,放弃 using 语句并使用 std::cout,这样您就不必担心命名空间冲突。 请参阅此问题 为什么"使用命名空间 std;"被认为是不好的做法?

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