无意之中发现的一个C++的错误

本来想改下数制转换,没想到发现了以下错误。

源代码:

#include<iostream>

using namespace std;

int main()
{
 int decs=42;
 int hexs=42;
 int octs=42;


 //默认下十进制输出 其中dec,hex,oct为cout的输出格式
 cout<<"IN DEC: decs is: "<<decs<<endl;


 //改为十六进制输出
 cout<<hex;
 cout<<"IN HEX: hexs is: "<<hexs<<endl;
 cout<<"IN HEX: decs is: "<<decs<<endl;

 //改为八进制输出
 cout<<oct;
 cout<<"IN OCT: octs is: "<<octs<<endl;
 cout<<"IN OCT: decs is: "<<decs<<endl;


 //回到默认的十进制输出
 cout<<dec;
 cout<<"IN DEC: decs is: "<<decs<<endl;

 

 return 0;
}

这是正常输出。可是但我把decs,hexs,octs后面的s都去掉的时候有趣的事情发生了。

修改后的源码:

#include<iostream>

using namespace std;

int main()
{
 int dec=42;
 int hex=42;
 int oct=42;


 //默认下十进制输出 其中dec,hex,oct为cout的输出格式
 cout<<"IN DEC: decs is: "<<dec<<endl;


 //改为十六进制输出
 cout<<hex;
 cout<<"IN HEX: hexs is: "<<hex<<endl;
 cout<<"IN HEX: decs is: "<<dec<<endl;

 //改为八进制输出
 cout<<oct;
 cout<<"IN OCT: octs is: "<<oct<<endl;
 cout<<"IN OCT: decs is: "<<dec<<endl;


 //回到默认的十进制输出
 cout<<dec;
 cout<<"IN DEC: decs is: "<<dec<<endl;

 

 return 0;
}

这里是由于hex,oct,dec等都不是关键字而引起的错误。另外声明我是在visual C++ 6.0下编译的。

本文出自 “API技巧全集” 博客,请务必保留此出处http://1375054.blog.51cto.com/1365054/588310

你可能感兴趣的:(C++,源代码,职场,休闲)