Visual c++ C++;函数未返回值

Visual c++ C++;函数未返回值,visual-c++,Visual C++,这是我的代码,我不明白当main()中的确切代码生成正确答案时,为什么它不能作为函数工作。赋值是将二进制数转换成十进制数 #include <iostream> #include <cstdlib> #include "std_lib_facilities.h" using namespace std; int binaryCon(int biNum); int main() { int num, bin, Bnum; cout << "Ent

这是我的代码,我不明白当main()中的确切代码生成正确答案时,为什么它不能作为函数工作。赋值是将二进制数转换成十进制数

#include <iostream>
#include <cstdlib>
#include "std_lib_facilities.h"
using namespace std;
int binaryCon(int biNum);
int main()
{
    int num, bin, Bnum;
    cout << "Enter the binary number(1s and 0s) : ";
    cin >> num;
    bin = num;
    Bnum = binaryCon(num);
    cout << "The decimal equivalent of " << bin << " : " << Bnum << endl;
}
    int binaryCon(int biNum)
{
    long dec = 0, rem = 0, base = 1;
    enter code here`while (biNum > 0)
    rem = biNum % 10;
    dec = dec + rem * base;
    base = base * 2;
    biNum = biNum / 10;

    return biNum;
}
#包括
#包括
#包括“std_lib_facilities.h”
使用名称空间std;
int-binaryCon(int-biNum);
int main()
{
int num,bin,Bnum;
cout>num;
bin=num;
Bnum=二进制con(num);

cout因为您没有在while循环中使用
{
}
,所以它可能是在无限循环中运行的。因为它只适用于这一行

while (biNum > 0)
    rem = biNum % 10;    // running this line infinite as `biNum > 0`
使用

也许是这个

while (biNum > 0)
{
    rem = biNum % 10;
    dec = dec + rem * base;
    base = base * 2;
    biNum = biNum / 10;
}
更正代码:

#include <iostream>
#include <cstdlib>
using namespace std;
int binaryCon(int biNum);
int main()
{
    int num, bin, Bnum;
    cout << "Enter the binary number(1s and 0s) : ";
    cin >> num;
    bin = num;
    Bnum = binaryCon(num);
    cout << "The decimal equivalent of " << bin << " : " << Bnum << endl;
    getchar();
    return 0;
}
int binaryCon(int biNum)
{
    long dec = 0, rem = 0, base = 1;
    while (biNum > 0){
        rem = biNum % 10;
        dec = dec + rem * base;
        base = base * 2;
        biNum = biNum / 10;
    }
    return dec;
}
#包括
#包括
使用名称空间std;
int-binaryCon(int-biNum);
int main()
{
int num,bin,Bnum;
cout>num;
bin=num;
Bnum=二进制con(num);

coutint main()或int main(int argc,char**argv)必须返回一个值。如果返回0,则表示代码没有问题。另一个数字1、2等表示有错误。(返回的数字是错误数字)

我对visual c++不熟悉,但我猜您需要将binaryCon()移到main()之前函数。@TimeString有一个正向声明,所以这不是问题。问题在代码中。它应该返回一些东西。它返回的值是什么?你没有在while循环中使用
{
}
。.bcz的循环是无限的。
#include <iostream>
#include <cstdlib>
using namespace std;
int binaryCon(int biNum);
int main()
{
    int num, bin, Bnum;
    cout << "Enter the binary number(1s and 0s) : ";
    cin >> num;
    bin = num;
    Bnum = binaryCon(num);
    cout << "The decimal equivalent of " << bin << " : " << Bnum << endl;
    getchar();
    return 0;
}
int binaryCon(int biNum)
{
    long dec = 0, rem = 0, base = 1;
    while (biNum > 0){
        rem = biNum % 10;
        dec = dec + rem * base;
        base = base * 2;
        biNum = biNum / 10;
    }
    return dec;
}