在 C++ 中读取文本文件中的数字和字母

Posted

技术标签:

【中文标题】在 C++ 中读取文本文件中的数字和字母【英文标题】:Reading numbers then letters in a text file in C++ 【发布时间】:2016-02-22 00:40:51 【问题描述】:

我正在尝试用 C++ 做某事,但在弄清楚具体如何做时遇到了一些麻烦。

我有一个文本文件,其中包含我需要解析和操作的信息。该文件的格式为多行,每行包含一个数字后跟一个字母:

1234 A
5678 B
9101 C

我需要做的是,逐行读取数字并根据它进行计算。然后我需要根据该行字母的值进行操作。完成这两个操作后,我会重复下一行,直到解析完文件中的所有行。

我找到了一些关于如何逐行读入字符串的文章,但我无法引用如何将行分隔为数字和字母。

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

以下示例可能会有所帮助:

#include <iostream>
#include <fstream>
#include <string>

int main(int argc, char** argv)

  std::ifstream fp("input.dat");

  char ch;
  int n;
  while (fp >> n && fp >> ch)
  
    std::cout << "Here is your number: " << n << std::endl;
    std::cout << "Here is your char: " << ch << std::endl;
  

  return 0;

在上面,文件input.dat 包含您的输入。此示例不关心数字和字母是否由换行符、制表符、空格或任何其他空格分隔。如果您确实需要准备特定格式,可以查看fscanfstd::getline (http://www.cplusplus.com/reference/string/string/getline/)。

【讨论】:

【参考方案2】:
using namespace std;

ifstream file("file.txt");
int number;
char character;

while( file >> number >> character ) 
    // read each line as a number followed by a character
    cout << number << " " << character << endl;
    switch( character ) 
        case 'A':

            break;
        case 'B':

            break;
        case 'C':

            break;
    

【讨论】:

我想有些人可能会发现引诱初学者清除文件系统的做法很可笑。戴先生,你小时候肯定太聪明了,不会上当……

以上是关于在 C++ 中读取文本文件中的数字和字母的主要内容,如果未能解决你的问题,请参考以下文章

C ++将文本文件中的数字读取到数组中

C++文件读写操作逐字符读取文本和逐行读取文本

在C++中如何读取文本中的数据存储为数组变量?

将文本文件中的信息读取到文本文件中的 3 个不同数组中(c++)

python代码:计算一个文本文件中所有大写字母,小写字母,数字和其他的数量。

在从文件读取的字母数字数组中查找数字元素并将它们写入新文件