21xrx.com
2024-11-22 06:43:51 Friday
登录
文章检索 我的文章 写文章
使用C++类读取和处理TXT文件数据
2023-06-29 20:16:42 深夜i     --     --
C++类 读取 处理 TXT文件 数据

C++是一种高效、简洁、可靠的编程语言,它在现代软件开发中发挥着重要作用。读取和处理TXT文件数据是C++编程中比较基础的操作之一。本文将介绍如何使用C++类读取和处理TXT文件数据。

首先,我们需要一个用来处理数据的类。在C++中,我们可以使用类来封装方法和数据,达到代码模块化和重用的目的。以下是一个简单的文件读取类:


#include <iostream>

#include <fstream>

#include <string>

class FileHandler {

  private:

    std::ifstream inFile;

    std::string fileName;

  public:

    FileHandler(std::string fName) {

      fileName = fName;

      inFile.open(fileName.c_str(), std::ios::in);

    }

    ~FileHandler() {

      inFile.close();

    }

    std::string readFile() {

      std::string line;

      std::string content = "";

      if(inFile.is_open()) {

        while(getline(inFile, line)) {

          content += line + "\n";

        }

      }

      return content;

    }

};

这里定义了一个FileHandler类,其中包含了一个私有的ifStream成员变量,用来打开文件和读取文件内容。在构造函数中,我们可以传递文件名,并打开文件。在析构函数中,我们关闭文件流避免内存泄漏。readFile()函数返回一个字符串类型的文件内容。

现在我们已经有了可以读取TXT文件内容的类,接下来我们可以使用它来读取文件并进行处理。假设我们的TXT文件内容如下:


apple, 2.50

banana, 1.80

orange, 3.20

现在我们要从文件中读取数据,并将其输出到控制台。以下是相关代码:


int main() {

  FileHandler fh("data.txt");

  std::string content = fh.readFile();

  std::cout << content << std::endl;

  return 0;

}

以上代码将打开data.txt文件并读取其内容,然后将读取到的内容输出到控制台。可以看到,读取数据非常容易,并且我们可以轻松地扩展FileHandler类以满足自己的需求。例如,我们可以编写一个名为parseFile()的新函数,用于解析CSV数据并将其转换为数字类型数据。


std::vector<std::pair<std::string, double>> parseFile() {

  std::vector<std::pair<std::string, double>> data;

  std::string line;

  if(inFile.is_open()) {

    while(getline(inFile, line)) {

      std::string strName = "";

      std::string strPrice = "";

      bool isName = true;

      for(int i = 0; i < line.size(); ++i) {

        if(line[i] == ',')

          isName = false;

          continue;

        

        if(isName) {

          strName += line[i];

        }

        else {

          strPrice += line[i];

        }

      }

      std::pair<std::string, double> p(strName, std::stod(strPrice));

      data.push_back(p);

    }

  }

  return data;

}

以上代码将每行数据按照逗号分隔符分离为名称和价格,然后将这些名称和价格作为std::pair对象添加到std::vector容器中。我们可以在main()函数中调用这个新函数来获取我们需要的数据。


int main() {

  FileHandler fh("data.txt");

  std::vector<std::pair<std::string, double>> data = fh.parseFile();

  for(auto& p : data)

    std::cout << "name: " << p.first << "

  return 0;

}

以上代码将输出经过解析的数据,每行一个名称和价格。可以看到,使用C++类读取和处理TXT文件数据非常灵活和简单,可以让我们开发出更加高效、健壮、易维护的软件。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复