C++语言io流处理基本操作教程示例详解

目录

  • 一、输入输出流对象
    • 流对象常用的处理函数
    • 流控制字符
  • 二、字符流操作
    • sstream
  • 三. 文件流流类
    • 四.文件指针定位

      一、输入输出流对象 cout:标准输出流
      cerr:标准出凑和cout(只是用于如果是错误时要输出的)
      cin:标准输入

      流对象常用的处理函数
      输出字符 put()
      输入字符:get()
      输出字符串:write()
      输入字符串getline()
      char ch; cin.get(ch); cout << ch<

      流控制字符
      //就是以你制定的要求去输出
      要加上头文件#incude
      boolalpha:bool类型输出true或者false
      setbase(n):设置整数为n的进制进行输出 n只能为8 16 10
      int num = 10; cout << setbase(8) << num << endl; cout << setbase(10) << num << endl; cout << setbase(16) << num << endl;

      setfill(‘一个字符') : 设置填充字符
      setw(n):设置输出的宽度
      int num = 10; cout<< setfill('s')<
      setprecision :设值有效位数包括整数
      double num = 3.14159; cout << setprecision(4) << num << endl; cout << setprecision(4) << num * 10 << endl;

      前面一个是3.141后面一个是31.41
      setiosflags(ios::left)//对齐方式左对齐setiosflagsios(ios:right)右对齐

      二、字符流操作 头文件 #include
      字符流一般使用stringstream的对象

      sstream
      包括 isringstreamostingstreamstringstream
      一般用stringstream(可读可写)
      stringstream的成员函数
      string.str()//获取字符流对象中的字符串
      string.str(const string&str)//改变字符流中的字符串
      ?stringstream s("sdflk"); cout << s.str() << endl; s.str("ljsflk"); s.str(string("sdljf")); //二种都可以 一个是构建一个string的无名对象传字符串 cout << s.str() << endl; ?

      字符流的一些基本操作
      将数字转换为字符串int num =1234;cout<> str; //stream流出到str这个字符串中cout << str << endl;

      【C++语言io流处理基本操作教程示例详解】同时使用一个流对象多次转换的时候 必须使用clear清除同时也要二次流入在流出
      不然是空流
      stringstream stream; stream << num; //将num流入stream这个类中 stream >> str; //stream流出到str这个字符串中 cout << str << endl; string str2; //如果没有clear函数就没有把num流入到num2 stream.clear(); stream << num; stream >> str2; cout << str2 << endl;


      三. 文件流流类 头文件 #include//ifstream 和ofstream
      ofstream:打开文件,写文件
      ifstream:打开文件,读操作
      fstream:可读可写
      mode:
      ios::in 读的方式打开文件
      ios::out 写的方式打开文件
      ios::app追加的方式写文件
      ios::ate 在已有的文件,文件指针指向文件末尾
      ios::trunc文件不存在,创建文件
      ios::binary二进制形式打开文件,默认方式是ascii码方式打开
      ios::nocreat不创建的方式
      ios::noreplace 不替换
      组合方式使用
      用的是位或
      ios::in|ios::out 可读写
      ios::out|ios::binary二进制写的方式打开文件
      判断文件是不是打开成功(防御性操作)
      is_open()判断打开是否成功
      !文件对象判断打开文件是否成功
      fstream File; File.open("1.tex", ios::in | ios::out | ios::trunc); if (!File.is_open()) {cout << "创建文件失败" << endl; } if (!File) {cout << "创建文件失败" << endl; }

      文件的读写操作
      fstream Read("1.txt",ios::in); //读的方式打开文件///要有这个文件fstream Write("2.txt",ios::out|ios::trunc); //写的方式打开文件//没有这个文件就创建一个 while (1) {char ch; Read.get(ch); if (Read.eof()){break; }Write.put(ch); } Read.close(); Write.close();


      四.文件指针定位 ifstream://读
      istream&seekg(longt int pos);
      istream&seekg(long int pos,ios_base::seekdir begin)
      ofstream://写
      ostream&seekp(long int pos):
      ostream&seekp(long int pos,ios_base::seekdir begin);
      //ios_base::seekdir//位置
      ios::beg 文件开始
      ios::cur 文件当前
      ios::end 结束位置
      fstream read("1.txt", ios::in); read.seekg(5); //移动5个字节后 char ch = read.get(); //读取5个位置后的第一个 cout << ch << endl;

      C++语言io流处理基本操作教程示例详解
      文章图片

      空格也算
      文件的一些指向操作
      fstream read("1.txt", ios::in); read.seekg(5); //移动5个字节后 char ch = read.get(); //读取5个位置后的第一个 cout << ch << endl; read.seekg(0, ios::beg); ch = read.get(); cout << ch << endl; read.seekg(-5, ios::end); //最后位置前面5个 ch = read.get(); cout << ch << endl;

      以上就是C++语言io流处理基本操作示例详解的详细内容,更多关于C++语言io流处理的资料请关注脚本之家其它相关文章!

        推荐阅读