21xrx.com
2025-03-21 19:19:46 Friday
文章检索 我的文章 写文章
C++文件读取:如何统计读取的字符串数量?
2023-07-08 18:50:23 深夜i     --     --
C++ 文件读取 统计 字符串数量

在C++编程中,文件读取是一个常用的操作。当我们需要读取一个文件中的字符串时,我们需要知道读取的数量。下面介绍几种方法来统计读取的字符串数量。

方法一:使用getline()函数

使用getline()函数可以按行读取文件并存储到字符串中。在读取文件时,每读取一行,字符串数量加一。代码如下:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
  ifstream infile("file.txt");
  string line;
  int count = 0;
  while (getline(infile, line))
  {
    count++;
  }
  cout << "字符串数量:" << count << endl;
  infile.close();
  return 0;
}

该代码中,打开了一个名为file.txt的文件。使用getline()函数按行读取文件,直到文件读取完。读取一行成功,则计数器count加一。最后输出字符串数量。

方法二:使用>>运算符

使用>>运算符可以按单词(空格或者换行符分割)读取文件。在读取文件时,每读取一个单词,字符串数量加一。代码如下:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
  ifstream infile("file.txt");
  string word;
  int count = 0;
  while (infile >> word)
  {
    count++;
  }
  cout << "字符串数量:" << count << endl;
  infile.close();
  return 0;
}

该代码中,打开了一个名为file.txt的文件。使用>>运算符按单词读取文件,直到文件读取完。读取一个单词成功,则计数器count加一。最后输出字符串数量。

方法三:使用fgets()函数

使用fgets()函数可以一次读取指定长度的字符串。在读取文件时,每读取一行,字符串数量加一。代码如下:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
  FILE* f = fopen("file.txt", "r");
  char line[128];
  int count = 0;
  while (fgets(line, 128, f))
  {
    count++;
  }
  cout << "字符串数量:" << count << endl;
  fclose(f);
  return 0;
}

该代码中,使用fopen()函数打开一个名为file.txt的文件,并用fgets()函数按行读取文件。读取一行成功,则计数器count加一。最后输出字符串数量。

总结:

以上三种方法都可以用来统计读取的字符串数量。使用getline()函数和>>运算符可以轻松地读取文件中的字符串,代码相比,较为简单。而使用fgets()函数则需要指定读取的指定长度,代码相对稍微麻烦一些。无论使用哪种方法,掌握这些技巧将有助于在C++编程中更好地读取文件和统计数据。

  
  

评论区