21xrx.com
2024-05-20 12:30:53 Monday
登录
文章检索 我的文章 写文章
C++如何按行读取文件
2023-07-14 03:58:17 深夜i     --     --
C++ 按行读取 文件

在C++编程中,读取文件是一个非常常见的操作,而按行读取文件对于处理文本文件来说更为常见。C++提供了多种读取文件的方式,但是如何按行读取文件呢?下面介绍几种方法。

第一种方法是通过getline函数逐行读取文件。这种方法是最常见的方法之一,使用起来也比较简单,只需要一行代码就可以轻松实现。代码如下:


#include <iostream>

#include <fstream>

using namespace std;

int main()

{

  ifstream infile("test.txt");   // 打开文件

  string line;

  while (getline(infile, line))  // 逐行读取

  

    cout << line << endl;    // 输出每行内容

  

  infile.close();         // 关闭文件

  return 0;

}

第二种方法是通过fgets函数逐行读取文件。这种方法可以使用C语言的标准库来实现,相比getline函数来说,它更加灵活,可以指定每行读取的最大字符数。代码如下:


#include <iostream>

#include <fstream>

using namespace std;

int main()

{

  FILE *file = fopen("test.txt", "r");  // 打开文件

  char buffer[256];

  while (fgets(buffer, 256, file))    // 逐行读取

  {

    printf("%s", buffer);       // 输出每行内容

  }

  fclose(file);             // 关闭文件

  return 0;

}

第三种方法是通过stringstream类来实现按行读取文件。这种方法可以将每行读取的内容转换成字符串,方便后续操作。代码如下:


#include <iostream>

#include <fstream>

#include <sstream>

using namespace std;

int main()

{

  ifstream infile("test.txt");   // 打开文件

  string line;

  while (getline(infile, line))  // 逐行读取

  {

    stringstream ss(line);

    string word;

    while (ss >> word)      // 逐个读取单词

    

      cout << word << endl;  // 输出每个单词

    

  }

  infile.close();         // 关闭文件

  return 0;

}

总之,按行读取文件是C++编程中非常常见的操作之一,选择合适的方法可以提高代码效率和可读性。以上三种方法每一种都有其适用的场景,需要结合实际需求进行选择和优化。

  
  

评论区

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