我一直在研究“编程:使用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";
}
}
答案 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;
}