Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/149.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将int转换为长C++;_C++ - Fatal编程技术网

C++ 将int转换为长C++;

C++ 将int转换为长C++;,c++,C++,此功能将十进制数转换为二进制数(我在互联网上创建了此功能) 我发现,当我将类型“long”更改为“int”时,对于大于1023的数字,该函数不起作用。问题是我必须用整数参数运行这个函数(它必须是foo(intdec))。我曾尝试使用静态_cast,但失败了。 错误:无法将赋值中的'long int'转换为'std::ios_base&(std::ios_base&)' 有没有办法绕过这个函数,或者以某种方式改变这个函数。 谢谢您的帮助。首先,此函数并不完全“将十进制转换为二进制”。相反,它将转换

此功能将十进制数转换为二进制数(我在互联网上创建了此功能)

我发现,当我将类型“long”更改为“int”时,对于大于1023的数字,该函数不起作用。问题是我必须用整数参数运行这个函数(它必须是foo(intdec))。我曾尝试使用静态_cast,但失败了。
错误:无法将赋值中的'long int'转换为'std::ios_base&(std::ios_base&)'

有没有办法绕过这个函数,或者以某种方式改变这个函数。
谢谢您的帮助。

首先,此函数并不完全“将十进制转换为二进制”。相反,它将转换一个数字,这样,如果以10为基数打印结果,那么它看起来就像该数字的二进制表示形式

其次,此函数定义无效,因为您没有指定返回类型

当然,如果您将参数列表中的
long
更改为
int
,并将
int
添加为返回类型(并且您的系统的
int
s小于
long
s-有些不适用),那么它将无法适用于可能的数字

例如,如果您的系统有32位整数,则
1111111
是可以工作的最大输出,它来自输入
1023


我不知道你在说什么,关于静态_cast和ios_base错误,你一定做了一些与这个函数无关的事情

确保在函数定义中定义函数返回的类型,并确保foo将long int作为参数

long int foo(long int) {

    code...

}

哪一行代码抛出了
std::ios\u base
转换错误?这通常只与控制台输入/输出相关。我认为您在其他地方犯了错误。dec=static_cast(dec2);此代码中没有
dec2
,因此,您显示了有效的代码,并询问了一个关于未显示的不同代码的问题,哪些代码无效?有什么问题吗?:)哇,我真的很抱歉。就像你说的,这是一个方法类型的问题。非常感谢。
long int foo(long int) {

    code...

}