⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 9.cc

📁 linux下编程用 编译软件
💻 CC
字号:
// 2003-05-27 Brendan Kehoe  <brendan@zen.org>// Copyright (C) 2003, 2004 Free Software Foundation//// This file is part of the GNU ISO C++ Library.  This library is free// software; you can redistribute it and/or modify it under the// terms of the GNU General Public License as published by the// Free Software Foundation; either version 2, or (at your option)// any later version.// This library is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the// GNU General Public License for more details.// You should have received a copy of the GNU General Public License along// with this library; see the file COPYING.  If not, write to the Free// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,// USA.// $22.2.6.3/3// The number of digits required after the decimal point (if any) is exactly// the value returned by frac_digits().#include <locale>#include <sstream>class dublin : public std::moneypunct<wchar_t> {public:  int do_frac_digits() const { return 3; }};int main(){  std::wistringstream liffey;  std::wstring coins;  std::locale eire(std::locale::classic(), new dublin);  liffey.imbue(eire);  const std::money_get<wchar_t>& greed    = std::use_facet<std::money_get<wchar_t> >(liffey.getloc());  typedef std::istreambuf_iterator<wchar_t> iterator_type;  iterator_type is(liffey);  iterator_type end;  std::ios_base::iostate err01 = std::ios_base::goodbit;  int fails = 0;  // Feed it 1 digit too many, which should fail.  liffey.str(L"12.3456");  greed.get(is, end, false, liffey, err01, coins);  if (! (err01 & std::ios_base::failbit ))    fails |= 0x01;  err01 = std::ios_base::goodbit;  // Feed it exactly what it wants, which should succeed.  liffey.str(L"12.345");  greed.get(is, end, false, liffey, err01, coins);  if ( err01 & std::ios_base::failbit )    fails |= 0x02;  err01 = std::ios_base::goodbit;  // Feed it 1 digit too few, which should fail.  liffey.str(L"12.34");  greed.get(is, end, false, liffey, err01, coins);  if (! ( err01 & std::ios_base::failbit ))    fails |= 0x04;  err01 = std::ios_base::goodbit;  // Feed it only a decimal-point, which should fail.  liffey.str(L"12.");  greed.get(is, end, false, liffey, err01, coins);  if (! (err01 & std::ios_base::failbit ))    fails |= 0x08;  err01 = std::ios_base::goodbit;  // Feed it no decimal-point at all, which should succeed.  liffey.str(L"12");  greed.get(is, end, false, liffey, err01, coins);  if ( err01 & std::ios_base::failbit )    fails |= 0x10;  return fails;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -