首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

把一句C代码翻译成C++代码解决办法

2012-03-09 
把一句C代码翻译成C++代码C/C++ codeprintf(%d, i)就这句代码,各位来翻译翻译。哥将以最严格的标准来检

把一句C代码翻译成C++代码

C/C++ code
printf("%d", i);

就这句代码,各位来翻译翻译。哥将以最严格的标准来检查答案
话都说在这份上。你们懂的

[解决办法]

翻译之后的 
C/C++ code
printf( "%d" , i );
[解决办法]
cout << (int)i;
……
[解决办法]
我知道LZ散分的。
[解决办法]
std::cout<<i;

难道不是这个?
[解决办法]
jf.........
[解决办法]
探讨

std::cout<<i;

难道不是这个?

[解决办法]
探讨

引用:

std::cout<<i;

难道不是这个?


还没出现 所谓按严格标准判断的 答案
哥去改会BUG,一会再来看。嘿嘿

[解决办法]
不是很明白
[解决办法]
lz是来散分的。
[解决办法]
对不起,C++不愿意那么做呀。
[解决办法]
没办法printf的实现就是不管你的第一个数的类型是什么都是用4个字节.这个是蛋疼的
[解决办法]
探讨

引用:

std::cout<<i;

难道不是这个?

i 的类型不确定。也就是说 char short之类的小于int大小的要符号扩展
float要扩展成double,然后截取低4字节。
double直接截取低4字节。

[解决办法]
std::cout<<static_cast<int>(i)<<std::endl;
[解决办法]
什么时候公布结果呢,哥!
[解决办法]
the same...
printf("%d",i):
[解决办法]
探讨
C/C++ code

printf("%d", i);


就这句代码,各位来翻译翻译。哥将以最严格的标准来检查答案
话都说在这份上。你们懂的

[解决办法]
先来一个内嵌汇编版的
C/C++ code
__declspec(naked) int func( ... ){    __asm mov eax , [esp+4]    __asm ret}
[解决办法]
这个不错。。
探讨

先来一个内嵌汇编版的
C/C++ code
__declspec(naked) int func( ... )
{
__asm mov eax , [esp+4]
__asm ret
}


cout<< func( i );
结果肯定一致。

[解决办法]
好了,纯粹C++版本来了。

C/C++ code
int func(float a){    double x = a;    return *(int*)&x ;}template<class T>int func( T a ){    return *(int*)&a;}#define CALL( a ) cout<< func( a ); printf("\t%d\n" , a );struct T1{    double a;    int b;};struct T2{    int a;    double b;};struct T3{    char a;    short b;};struct T4{    short a;    char b;};int main(){    char a = 0x7f;    unsigned char b = 0x7f;    short c = 0x7fff;    unsigned short d = 0x7fff;    int e = 0x7fffffff;    unsigned int f = 0x7fffffff;    __int64 g = 0x7fffffffffffffff;    unsigned __int64 h = 0x7fffffffffffffff;    float i = 123.4567;    double j = 123.4567;    T1 k = {123.456,0x7fffffff};    T2 l = {0x7fffffff,123.456};    T3 m = {0x7f,0x7fff};    T4 n = {0x7fff ,0x7f};    CALL( a );    CALL( b );    CALL( c );    CALL( d );    CALL( e );    CALL( f );    CALL( j );    CALL( h );    CALL( i );    CALL( j );    CALL( k );    CALL( l );    CALL( m );    CALL( n );} 


[解决办法]
std::cout<<static_cast<int>(i);
[解决办法]
难道用模板?还是我领会错了楼主的意思,楼主实际是来散分的
[解决办法]
不懂 学习了
[解决办法]
1.楼主散粉
2.揭晓答案
3.我学习了
[解决办法]

探讨
翻译之后的
C/C++ code
printf( "%d" , i );

[解决办法]
printf("%d", i);
我的答案
[解决办法]
std::cout<<static_cast<int>(i);
[解决办法]
CSDN就是好,很多书上学不到的东西,在这里可以学到。

感恩一下...
[解决办法]
学习的,不过还真复杂,你们搞科学研究吗
[解决办法]
不错 学习了~
[解决办法]
坐等楼主给分!~~~~~~~~~~~~~

热点排行