21xrx.com
2025-07-15 02:12:09 Tuesday
登录
文章检索 我的文章 写文章
使用C++类读取和处理TXT文件数据
2023-06-29 20:16:42 深夜i     11     0
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文件数据非常灵活和简单,可以让我们开发出更加高效、健壮、易维护的软件。

  
  

评论区