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

📄 narrow_stream_objects.cc

📁 gcc-you can use this code to learn something about gcc, and inquire further into linux,
💻 CC
字号:
// 2000-08-02 bkoz// Copyright (C) 2000, 2001, 2002 Free Software Foundation, Inc.//// 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, 59 Temple Place - Suite 330, Boston, MA 02111-1307,// USA.// Include all the headers except for iostream.#include <algorithm>#include <bitset>#include <complex>#include <deque>#include <exception>#include <fstream>#include <functional>#include <iomanip>#include <ios>#include <iosfwd>#include <istream>#include <iterator>#include <limits>#include <list>#include <locale>#include <map>#include <memory>#include <new>#include <numeric>#include <ostream>#include <queue>#include <set>#include <sstream>#include <stack>#include <stdexcept>#include <streambuf>#include <string>#include <typeinfo>#include <utility>#include <valarray>#include <vector>#include <cassert>#include <cctype>#include <cerrno>#include <cfloat>#include <ciso646>#include <climits>#include <clocale>#include <cmath>#include <csetjmp>#include <csignal>#include <cstdarg>#include <cstddef>#include <cstdio>#include <cstdlib>#include <cstring>#include <ctime>#include <testsuite_hooks.h>// Include iostream last, just to make is as difficult as possible to// properly initialize the standard iostream objects.#include <iostream>// Make sure all the standard streams are defined.inttest01(){  bool test = true;  char array1[20];  typedef std::ios::traits_type ctraits_type;  ctraits_type::int_type i = 15;  ctraits_type::copy(array1, "testing istream", i);  array1[i] = '\0';  std::cout << "testing cout" << std::endl;  std::cerr << "testing cerr" << std::endl;  VERIFY( std::cerr.flags() & std::ios_base::unitbuf );  std::clog << "testing clog" << std::endl;  // std::cin >> array1; // requires somebody to type something in.  VERIFY( std::cin.tie() == &std::cout );  return 0;}// libstdc++/2523void test02(){  using namespace std;  int i;  cin >> i;  cout << "i == " << i << endl;}// libstdc++/2523void test03(){  using namespace std;  ios_base::sync_with_stdio(false);  int i;  cin >> i;  cout << "i == " << i << endl;}// Interactive test, to be exercised as follows:// assign stderr to stdout in shell command line,// pipe stdout to cat process and/or redirect stdout to file.// a.out >& output// "hello fine world\n" should be written to stdout, and output, in// proper order.  This is a version of the scott snyder test taken// from: http://gcc.gnu.org/ml/libstdc++/1999-q4/msg00108.htmlvoid test04(){  using namespace std;  cout << "hello ";  cout.flush();  cerr << "fine ";  cerr.flush();  cout << "world" << endl;  cout.flush();}// Interactive test, to be exercised as follows:// run test under truss(1) or strace(1).  Look at// size and pattern of write system calls.// Should be 2 or 3 write(1,[...]) calls when run interactively// depending upon buffering mode enforced.void test05(){  std::cout << "hello" << ' ' << "world" << std::endl;  std::cout << "Enter your name: ";  std::string s;  std::cin >> s;  std::cout << "hello " << s << std::endl;}// libstdc++/5280// Interactive test: input "1234^D^D" for i should terminate for EOF.void test06(){  using namespace std;  int i;  cin >> i;  if (!cin.good())     {      cerr << endl;      cerr << "i == " << i << endl;      cerr << "cin.rdstate() == " << cin.rdstate() << endl;      cerr << "cin.bad() == " << cin.bad() << endl;            cerr << "cin.fail() == " << cin.fail() << endl;            cerr << "cin.eof() == " << cin.eof() << endl;    }     else    cerr << "i == " << i << endl;}// libstdc++/6548void test07(){  bool test = true;  std::cout << "Enter 'test':";  std::string s;  std::getline(std::cin, s, '\n');  VERIFY( s == "test" );}// libstdc++/6648// Interactive tests: each one (run alone) must terminate upon a single '\n'.void test08(){  bool test = true;  char buff[2048];  std::cout << "Enter name: ";  std::cin.getline(buff, 2048);}void test09(){  bool test = true;  std::cout << "Enter favorite beach: ";  std::cin.ignore(2048, '\n');}// http://gcc.gnu.org/ml/libstdc++/2002-08/msg00060.html// Should only have to hit enter once.voidtest10(){  using namespace std;  cout << "Press ENTER once\n";  cin.ignore(1);  cout << "_M_gcount: "<< cin.gcount() << endl;}int main(){  test01();  // test02();  // test03();  // test04();  // test05();  // test06();  // test07();  // test08();  // test09();  // test10();  return 0;}

⌨️ 快捷键说明

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