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

关于格式化输出的“noshowbase”的用法,如何老是出错呢?多谢

2013-12-21 
关于格式化输出的“noshowbase”的用法,怎么老是出错呢?谢谢看的《C++Primer》的附录关于IO部分。说COUT默认是n

关于格式化输出的“noshowbase”的用法,怎么老是出错呢?谢谢
看的《C++Primer》的附录关于IO部分。说COUT默认是noshowbase的,我用了showbase后想恢复,为什么会出错呢?
代码如下:


#include<iostream>

int main(void)
{
std::cout << "Enter a number: " << std::endl;
int i;
std::cin >> i;

std::cout << std::ios::showbase << i << std::ios::noshowbase<<std::endl;

return 0;
}


编译器给出的错误信息如下(Visual Studio 2013):
1>------ 已启动生成:  项目: Test2, 配置: Debug Win32 ------
1>  main.cpp
1>y:\private\practise\cpp\test2\test2\main.cpp(9): error C2039: “noshowbase”: 不是“std::basic_ios<char,std::char_traits<char>>”的成员
1>y:\private\practise\cpp\test2\test2\main.cpp(9): error C2065: “noshowbase”: 未声明的标识符
========== 生成:  成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
[解决办法]
引用:
std::ios::noshowbase不存在。


// modify showbase flag
#include <iostream>     // std::cout, std::showbase, std::noshowbase

int main () {
  int n = 20;
  std::cout << std::hex << std::showbase << n << '\n';
  std::cout << std::hex << std::noshowbase << n << '\n';
  return 0;
}

热点排行