这个简单的输入输出C++程序为什么会运行出这么奇怪的结果
#include<stdio.h>#include<iostream.h>#include<iomanip.h>intmain(){intn;cout<<"请输入数据:"...
#include <stdio.h>
#include <iostream.h>
#include <iomanip.h>
int main()
{
int n ;
cout<<"请输入数据:" ;
cin>>n ;
cout<<n<<"in hexadecimal is:"
<<hex<<n<<endl
<<dec<<n<<"in octal is:"
<<oct<<n<<endl;
n=1;
do
{
n++;
}while(n>2);
cout<<n<<endl ;
n=-1;
for(;n>2;n++) ;
cout<<n<<endl;
return 0 ;
}
<n<<!--<n<</n< 展开
#include <iostream.h>
#include <iomanip.h>
int main()
{
int n ;
cout<<"请输入数据:" ;
cin>>n ;
cout<<n<<"in hexadecimal is:"
<<hex<<n<<endl
<<dec<<n<<"in octal is:"
<<oct<<n<<endl;
n=1;
do
{
n++;
}while(n>2);
cout<<n<<endl ;
n=-1;
for(;n>2;n++) ;
cout<<n<<endl;
return 0 ;
}
<n<<!--<n<</n< 展开
2个回答
展开全部
cout的默认输出格式为10进制,而上述题目在最后一个打印时,将默认的输出格式设置成了8进制,所以当n=-1时,输出的8进制,即为377777777777;
当将默认的输出格式设置为16进制时,会输出ffffffff;
当将默认的输出格式设置为10进制时,会输出-1;
当然也可通过setbase函数设置进制数,(头文件#include <iomanip>)
cout<<dec<<n<<endl;
cout<< setbase(16) <<n<<endl;
cout<<hex<<n<<endl;
cout<<oct<<n<<endl;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询