怎样用C++从txt文件中读取数据写入数组

  • 原创
  • |
  • 浏览:30129
  • |
  • 更新:

在工作中我们经常会遇到从外部文件读取数据存入数组以供我们进行运算,那么这中间可能会存在两个操作,一个是读取文件,这个是肯定的;另一个,有可能还要进行数据类型的转换,因为从文件中读取的内容肯定都是字符型数据,那么字符型数据不能直接进行数学运算,因此需要进行转换。今天我们就来看看怎么能够完成该操作。

怎样用C++从txt文件中读取数据写入数组

工具/原料

  • 支持标准C++编程的IDE,本例采用devc++

一、新建一个c++项目

  1. 1

    首先我们在电脑上新建一个文件夹,名称叫txt2array。

    然后,打开我们的devc++,新建一个控制台c++项目,名称也叫txt2array。

    怎样用C++从txt文件中读取数据写入数组
  2. 1
    该信息非法爬取自百度经验
  3. 2

    将项目文件及源代码文件以及我们演示用的数据文件都存放在txt2array文件夹中。

    怎样用C++从txt文件中读取数据写入数组
  4. 3

    向数据文件中写入一些演示用数据。

    怎样用C++从txt文件中读取数据写入数组
    END

二、相关标准库的使用

  1. 1

    在简介中已经说了,两个操作,一是读文件,二是类型转换。这两个操作,c++的标准库已经给我们准备好了,而且使用简单。

    我们先来看看标准库的输入输出类的关系:

    怎样用C++从txt文件中读取数据写入数组
  2. 2

    上图的继承关系已经很清晰了。

    这里多说一句,很多人以为iostream是一个单独的类,因为我们只要使用了cin和cout、cerr等就会#include <iostream>。实际上cin、cout都是iostream的父类istream以及ostream的类对象,iostream实际上只有几行,主要是extern了这几个类对象而已,有兴趣的可以去看看源代码。

    好了,第一个操作读文件,我们可以使用ifstream或者fstream,前者提供了读取操作,后者可以同时进行读写。

    我们主要看看ifstream类。看看它的构造函数:

    怎样用C++从txt文件中读取数据写入数组
  3. 3

    下面来看看字符串类型转整型的类,主要是istringstream类。

    怎样用C++从txt文件中读取数据写入数组
  4. 4

    istringstream的构造函数页面提供了一个字符串转数字的例子。

    怎样用C++从txt文件中读取数据写入数组
    END

三、编写实现代码

  1. 1

    我们知道了要使用的类库以及操作,下面我们来按步操作编写代码。

    首先,包含相应的头文件。

    这里我们包含的是fstream以及sstream类,具体可以看第一个图中的类关系。

    怎样用C++从txt文件中读取数据写入数组
  2. 2

    操作一:读取文件。

    输入如下代码:

    char line[256];

    int intarr[5];

    ifstream ifile("data.txt");

    while(ifile.good())

    {

    ifile.getline(line,256);

    puts(line);

    }

    运行下,看来我们读取成功了。ifile.good()会返回当前流的状态。

    怎样用C++从txt文件中读取数据写入数组
  3. 3

    操作二:将数据存入数组,并进行类型转换。

    输入如下代码:

    char line[256];

    int intarr[5];

    int linenum=1;

    ifstream ifile("data.txt");

    while(ifile.good())

    {

    int sum=0;

    ifile.getline(line,256);

    //puts(line);

    istringstream iss(line);

       iss>>intarr[0]>>intarr[1]>>intarr[2]>>intarr[3]>>intarr[4];

       cout<<"第" <<linenum<<"行"<<endl;

       for(int i=0;i<5;++i)

       {

        sum+=intarr[i];

        cout<<intarr[i]<<endl;

       }

       cout<<"第" <<linenum<<"行和:"<<sum<<endl;

       linenum++;

    }

    怎样用C++从txt文件中读取数据写入数组
  4. 4

    运行下程序看看。

    可以看到,我们完成了读取文件数据,并将其转为数字保存到数组中,可以求和证明了我们的转换是没问题的。

    怎样用C++从txt文件中读取数据写入数组
    END
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。
展开阅读全部