C/C++文件——数据写入、读取

  这几天看了C++ plus上的文件写入、读取方面的内容,可以说只是有个大概的了解。

  鉴于OpenCV中需要保存提取到的图像边缘的坐标值,加上有同学问起,所以打算做一个简短的总结。

  1、C++中涉及到的文件写入类是ofstream,可以声明其对象,然后调用类中成员函数进行文本创建、数据写入等操作。

  下面来看一下简单实例,后面的例子头文件及main()就不重复给出了:

  #include <fstream>

  #include <iostream>
  #include <stdio.h>

  using namespace std;

  const int n=10;  //这里只是对10个数据进行操作

  int main ( )
  {
    ofstream fout("file1.txt"); //创建待写入数据文件
    for(int i=0;i<n;++i)
    {
      fout.width(2);  //设定宽度为2,默认右对齐
      fout<<i<<"\n";  //依次写入数据,其他类型原理相同
    }
    fout.close();  //关闭文件,写入成功

    return 0;
  }

  到这里,数据就成功写到文件“file1.txt”中了,下面可以对其中数据进行读取并输出(或改动后按照上述方法写到另一文件中):

    ifstream fin;  
    fin.open("file1.txt");  //用成员函数open()打开已经存在的文件
    int m=0;
    for(int i=0;i<n;++i)
    {
      fin>>m;
      cout<<m<<"\n";
    }
    fin.close();

  2、下面这段代码是用C语言实现的,头文件“stdio.h”在上面程序开头已经包含进来了:

    FILE *fpout;
    fpout=fopen("file2.txt","w");   //第二个参数“w”代表只准写入
    for(int i=0;i<n;++i)
    {
      fprintf(fpout,"%d\n",i*i);  //此函数把数据写入文本
    }
    fclose(fpout);

    FILE *fpin;
    fpin=fopen("file2.txt","r");  //只读
    int num;
    for(int i=0;i<n;++i)
    {
      fscanf(fpin,"%d",&num); //此函数把文件中读取出来的数据赋给接收变量
      printf("%d\n",num);
    }
    fclose(fpin);

    还有很多相关知识点,比如类似函数及其中参数的选择。这里没有一一给出,进一步学习中。

  

你可能感兴趣的:(c/c++)