00001 #pragma ident "$Id: format.hpp 294 2006-11-10 17:48:47Z btolman $" 00002 00003 //============================================================================ 00004 // 00005 // This file is part of GPSTk, the GPS Toolkit. 00006 // 00007 // The GPSTk is free software; you can redistribute it and/or modify 00008 // it under the terms of the GNU Lesser General Public License as published 00009 // by the Free Software Foundation; either version 2.1 of the License, or 00010 // any later version. 00011 // 00012 // The GPSTk is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with GPSTk; if not, write to the Free Software Foundation, 00019 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 // 00021 // Copyright 2004, The University of Texas at Austin 00022 // 00023 //============================================================================ 00024 00025 //============================================================================ 00026 // 00027 //This software developed by Applied Research Laboratories at the University of 00028 //Texas at Austin, under contract to an agency or agencies within the U.S. 00029 //Department of Defense. The U.S. Government retains all rights to use, 00030 //duplicate, distribute, disclose, or release this software. 00031 // 00032 //Pursuant to DoD Directive 523024 00033 // 00034 // DISTRIBUTION STATEMENT A: This software has been approved for public 00035 // release, distribution is unlimited. 00036 // 00037 //============================================================================= 00038 00044 #ifndef CLASS_FORMAT_HELPER_INCLUDE 00045 #define CLASS_FORMAT_HELPER_INCLUDE 00046 00047 #include <ostream> 00048 00049 //------------------------------------------------------------------------------------ 00050 class format { 00051 int form; // 0=general,1=float,2=scientific 00052 int wide; 00053 int prec; 00054 public: 00055 explicit format(int w, int p, int f=1) : wide(w),prec(p),form(f) {} 00056 format& scientific() { form=2; return *this; } 00057 format& sci() { form=2; return *this; } 00058 format& fixed() { form=1; return *this; } 00059 format& fix() { form=1; return *this; } 00060 format& general() { form=0; return *this; } 00061 format& gen() { form=0; return *this; } 00062 format& width(int w) { wide=w; return *this; } 00063 format& w(int w) { wide=w; return *this; } 00064 format& precision(int p) { prec=p; return *this; } 00065 format& p(int p) { prec=p; return *this; } 00066 format& wp(int w, int p) { prec=p; wide=w; return *this; } 00067 00068 friend std::ostream& operator<<(std::ostream& os, const format& f); 00069 }; // end class format 00070 00071 //------------------------------------------------------------------------------------ 00072 #endif 00073 // nothing below this..
1.3.9.1