zoukankan      html  css  js  c++  java
  • 第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

  • 相关阅读:
    LeetCode 842. Split Array into Fibonacci Sequence
    LeetCode 1087. Brace Expansion
    LeetCode 1219. Path with Maximum Gold
    LeetCode 1079. Letter Tile Possibilities
    LeetCode 1049. Last Stone Weight II
    LeetCode 1046. Last Stone Weight
    LeetCode 1139. Largest 1-Bordered Square
    LeetCode 764. Largest Plus Sign
    LeetCode 1105. Filling Bookcase Shelves
    LeetCode 1027. Longest Arithmetic Sequence
  • 原文地址:https://www.cnblogs.com/xin-le/p/4109034.html
Copyright © 2011-2022 走看看