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

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

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

1234 A
5678 B
9101 C

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

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

非常感谢任何帮助!

【问题讨论】:

    标签: c++ string file input


    【解决方案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;
          }
      }
      

      【讨论】:

      • 我想有些人可能会发现引诱初学者清除文件系统的做法很可笑。戴先生,你小时候肯定太聪明了,不会上当……
      猜你喜欢
      • 1970-01-01
      • 2016-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多