• 第3章 C++ I/O流技术


    /*
    
      第3章 C++ I/O流技术
       3.1 I/O流类
       3.2 标准输入输出
       3.3 文件输入输出
       3.4 流的格式控制
       3.5 本章小结
    
    */
    
    
    //  第3章 C++ I/O流技术
    //   3.1 I/O流类 ------------------------------------------------------------------------------------------
    
    //   3.2 标准输入输出 ------------------------------------------------------------------------------------------
    
    // 35
    #include <iostream>
    int main(void)
    {
      int i, j;
      std::cout << "请输入两个整数:
    ";
      std::cin >> i;
      std::cin >> j;
      std::cout << "两整数之和等于:
    ";
      std::cout << i + j;
      return 0;
    }
    
    // 35-36
    #include <iostream>
    using namespace std;
    int main(void)
    {
      int i, j;
      cout << "请输入两个整数" << endl;
      cin >> i >> j;
      cout << "两整数之和等于" << endl;
      cout << i + j << endl;
      return 0;
    }
    
    //   3.3 文件输入输出 ------------------------------------------------------------------------------------------
    
    // 37 ,如无文件,会自动创建
    #include <fstream>
    #include <iostream>
    using namespace std;
    int main(void)
    {
      ofstream wFileStream;
      wFileStream.open("x:\水果.txt", ios::out | ios::app);
      if(!wFileStream)
      {
        cout << "打开文件失败" << endl;
        return 1;
      }
      wFileStream << "apple" << ' ' << "苹果" << endl;
      wFileStream << "banana" << ' ' << "香蕉" << endl;
      wFileStream << "grape" << ' ' << "葡萄" << endl;
      wFileStream.close();
      return 0;
    }
    
    
    // 36-37,如无文件,会显示打开文件失败。
    #include <fstream>
    #include <iostream>
    using namespace std;
    int main(void)
    {
      ifstream rFileStream;
      rFileStream.open("d:\水果.txt", ios::in);
      if(!rFileStream)
      {
        cout << "打开文件失败" << endl;
        return 1;
      }
      //读文件
      char eName[10], cName[10];
      rFileStream >> eName >> cName;
      cout << eName << ' ' << cName << endl;
      rFileStream >> eName >> cName;
      cout << eName << ' ' << cName << endl;
      rFileStream >> eName >> cName;
      cout << eName << ' ' << cName << endl;
      rFileStream.close();
      return 0;
    }
    
    
    // 38
    #include <fstream>
    #include <iostream>
    using namespace std;
    int main(void)
    {
      ifstream rFileStream;
      rFileStream.open("d:\水果.txt", ios::in | ios::binary);
      if(!rFileStream)
      {
        cout << "打开文件失败" << endl;
        return 1;
      }
      char c;
      while(!rFileStream.eof())
      {
        rFileStream.get(c);
        cout << c;
      }
      rFileStream.close();
      return 0;
    }
    
    
    // 39
    #include <fstream>
    #include <iostream>
    using namespace std;
    struct Student
    {
      char name[8];
      int year;
    };
    int main(void)
    {
      Student st;
      strcpy(st.name, "宋公明");
      st.year = 18;
      //
      ofstream wFileStream;
      wFileStream.open("d:\student.txt", ios::out | ios::binary);
      if(!wFileStream)
      {
        cout << "打开文件失败" << endl;
        return 1;
      }
      wFileStream.write(reinterpret_cast < char * > (&st), sizeof(Student));
      wFileStream.close();
      //
      ifstream rFileStream;
      rFileStream.open("d:\student.txt", ios::in | ios::binary);
      rFileStream.read(reinterpret_cast < char * > (&st), sizeof(Student));
      cout << st.name << "  " << st.year << endl;
      rFileStream.close();
      return 0;
    }
    
    
    // 39-40
    #include <fstream>
    #include <iostream>
    using namespace std;
    int main(void)
    {
      ifstream rFileStream;
      rFileStream.open("d:\水果.txt", ios::in);
      if(!rFileStream)
      {
        cout << "打开文件失败" << endl;
        return 1;
      }
      char str[30];
      rFileStream.getline(str, 30);
      cout << str;
      rFileStream.close();
      return 0;
    }
    
    
    // 40
    #include <fstream>
    #include <iostream>
    using namespace std;
    int main(void)
    {
      fstream rwFileStream;
      rwFileStream.open("d:\digit.txt", ios::in | ios::out | ios::binary | ios
        ::trunc);
      if(!rwFileStream)
      {
        cout << "打开文件失败" << endl;
        return 1;
      }
      for(char i = 0; i < 26; i++)
        rwFileStream << char('a' + i);
      //写入26个字母
      //
      rwFileStream.seekg(3, ios::beg); //定位到第3个字母处(从0索引)
      char c;
      rwFileStream.get(c);
      cout << c << endl; //打印出字符d
      rwFileStream.close();
      return 0;
    }
    
    
    
    //   3.4 流的格式控制 ------------------------------------------------------------------------------------------
    
    // 42
    #include <iostream>
    using namespace std;
    int main(void)
    {
      cout.setf(ios::scientific | ios::uppercase);
      cout << 2006.5 << endl;
      //
      cout.setf(ios::floatfield, ios::fixed | ios::showpos);
      cout << 2006.5 << endl;
      //
      cout.setf(ios::showpos);
      cout << 2006.5 << endl;
      return 0;
    }
    
    
    //43
    #include <iostream>
    using namespace std;
    int main(void)
    {
      cout.width(20);
      cout << "hello" << endl; //右对齐输出hello,占20个字符
      //
      cout.precision(4);
      cout << 2006.526 << endl; //输出2007
      //
      cout.precision(5);
      cout << 2006.526 << endl; //输出2006.5
      //
      cout.precision(7); // 设置有效位数
      cout << 2006.526 << endl; //输出2006.526
      //
      cout.width(20);
      cout.fill('*');
      cout << "baby" << endl; //输出**************baby
      return 0;
    }
    
    
    
    // 44-45
    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main(void)
    {
      cout << setw(20) << "hello" << endl;
      cout << setprecision(4) << 2006.526 << endl;
      cout << setw(20) << setfill('*') << "baby" << endl;
      cout << scientific << 300.89 << endl;
      cout << oct << 9 << endl;
      cout << dec << showpos << 172 << endl;
      cout << noshowpos << 172 << endl;
      cout << boolalpha << true << endl;
      return 0;
    }
    
    
    
    // my test 。主要是为了测试浮点数的输出格式
    #include <iostream>
    //#include <iomanip>
    using namespace std;
    int main(void)
    {
      double d(3.141592653589);
      cout << d << endl;  // 默认精度是六位有效数字
      cout.precision(20); // 设置有效位数20位
      cout << d << endl;
    
      cout.precision(3);  // 保留三位小数
      cout << fixed << d << endl; // fixed,浮点数以小数形式输出。有四舍五入功能
      
      return 0;
    }
    
    
    
    //   3.5 本章小结 ------------------------------------------------------------------------------------------

    TOP

  • 相关阅读:
    牛客练习赛51
    [HZOI 2016] 偏序(CDQ套CDQ)
    AtCoder Beginner Contest 140
    [国家集训队] 拉拉队排练
    [CF91B] Queue
    [AT3867] Digit Sum 2
    [TJOI2007] 路标设置
    [HNOI2001] 求正整数
    [十二省联考2019] 异或粽子
    [SDOI2013] 直径
  • 原文地址:https://www.cnblogs.com/xin-le/p/4109034.html
Copyright © 2020-2023  润新知