21xrx.com
2024-12-23 01:44:47 Monday
登录
文章检索 我的文章 写文章
C++实现文件内容的读取并存入数组:fscanf与vector
2023-06-23 13:03:13 深夜i     --     --
C++ 文件读取 fscanf 数组 vector

在C++的程序设计中,读取文件内容并将其存入数组中是一项非常基础的操作。C++提供了不同的方法来实现这一目标,其中包括fscanf和vector。

fscanf是C语言中的一个函数,可以从文件中读取指定格式的数据。它可以读取字符串、整型、浮点型等各种类型的数据,并将其存入变量中。在C++中,我们可以利用fscanf函数来实现将文件内容读取到数组中的功能。

然而,由于fscanf使用起来较为繁琐,使用vector也是一种不错的选择。vector是C++中的一个STL容器,用于存储任意类型的数据。它的使用非常方便 – 我们可以将文件中的每一行数据读取到一个字符串中,然后将这个字符串插入到vector的末端。

使用vector读取文件的另一大优点是可以动态地调整数组的大小。在读取文件时,我们无法确定文件的大小,如果使用静态数组可能会因为数组大小不够而引发问题。但是,由于vector的大小可以自由调整,因此可以很好地避免这个问题。

下面是一个用vector读取文件内容的例子:


#include <iostream>

#include <fstream>

#include <vector>

#include <string>

int main()

{

  //打开文件

  std::ifstream readFile("example.txt");

  std::vector<std::string> content; //定义vector存储文件内容

  std::string line;

  while (std::getline(readFile, line)) //逐行读取文件内容

  {

    content.push_back(line); //将读取的内容插入到vector中

  }

  //输出读取到的文件内容

  for (auto i : content)

  

    std::cout << i << std::endl;

  

  return 0;

}

在本例中,我们使用了`std::getline()`函数逐行读取文件内容,并将每行字符串插入到vector中。在读取完整个文件后,我们输出了读取到的文件内容,其中每行字符串都是vector中的一个元素。

综上所述,读取文件内容并将其存入数组是C++中常见的操作,使用fscanf和vector都能够实现这一功能。与fscanf相比,vector的使用更加简单方便,而且能够在读取文件内容大小不确定的情况下动态调整数组大小,因此是更常用的方法。

  
  

评论区

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