simcat v2.cpp

来自「一个用C++实现的模拟UNIX的cat的程序」· C++ 代码 · 共 43 行

CPP
43
字号
#include <iostream>
#include <fstream>
#include <iterator>

using namespace std;

inline void display(istream& istrm);

int main(int argc, char* argv[])
{
   if (argc==1) display(cin);
   for(int i=1; i<argc; ++i)
   {
      if (argv[i][0]=='-' && argv[i][1]=='\0')
      {
         display(cin);
         continue;
      }
      ifstream in(argv[i]);
      if (!in)
      {
         cerr<<("%s", argv[0])<<": "<<("%s", argv[i])
             <<": No such a file or directory!"<<endl;
         continue;
      }
      display(in);
   }
   return 0;
}

inline void display(istream& istrm)
{
   istreambuf_iterator<char> inpos(istrm);
   istreambuf_iterator<char> endpos;
   ostreambuf_iterator<char> outpos(cout);
   while(inpos!=endpos)
   {
      *outpos=*inpos;
      ++inpos;
      ++outpos;
   }
}

⌨️ 快捷键说明

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