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

  • 相关阅读:
    mysql 7.5.8 服务无法启动 服务没有报告任何错误
    Ubuntu 16.04 php卸载
    函数式编程(3)-匿名函数
    函数式编程(2)-返回函数
    函数式编程(1)-高阶变成(3)-sorted
    函数式编程(1)-高阶变成(2)-filter
    函数式编程(1)-高阶变成(1)-map/reduce
    高级特性(4)-生成器
    高级特性(3)-列表生成式
    高级特性(2)-迭代
  • 原文地址:https://www.cnblogs.com/xin-le/p/4109034.html
Copyright © 2011-2022 走看看