从文件读取时使用“>>”运算符后如何将光标移至下一行

How to get cursor to next line after using ">>" operator when reading from file

我正在尝试从 .txt 文件中读取信息,如图所示 below.To 读取前两行整数 我使用“>>”运算符将它们读入数组。我的问题是我想将下一行(完整地)读入一个字符串,这样我就可以将它转换成一个流并解析它,但是当我尝试简单地使用 getline 时,它​​实际上并没有将任何内容读入字符串让我想到光标实际上并没有移动到下一行,我想知道如何做到这一点或任何其他可以达到保存目的的方法。 txt文件的结构如下:

2

10 10 10 10 10 10 20 20 20 15 15 15 15 15 15 15 20 30 20 15 15 10 10 10
765DEF 01:01:05:59 enter 17
ABC123 01:01:06:01 enter 17
765DEF 01:01:07:00 exit 95
ABC123 01:01:08:03 exit 95

我的代码如下所示:

#include<iostream>
#include<fstream>
#include<string>
#include <sstream>
using namespace std;



int main()
{
    int arr[24];
    int milemarker;
    int numberofCases;


    ifstream File;
    File.open("input.txt");
    File >> numberofCases;

    for (int i = 0; i < 24; i++)
    {
        File >> arr[i];
    }

    for (int i = 0; i < 24; i++)
    { 
        cout << arr[i] << " ";
    }
    cout << endl;
    string line;
    getline(File, line);
    cout << line;


    system("pause");
}

我想你错过了 getline() 电话:

#include<iostream>
#include<fstream>
#include<string>
#include <sstream>
using namespace std;



int main()
{
    int arr[24];
    int milemarker;
    int numberofCases;


    ifstream File;
    File.open("input.txt");
    File >> numberofCases;

    for (int i = 0; i < 24; i++)
    {
        File >> arr[i];
    }

    for (int i = 0; i < 24; i++)
    { 
        cout << arr[i] << " ";
    }
    cout << endl;
    string line;
    getline(File, line);
    getline(File, line);
    cout << line;


    system("pause");
}

运算符 >> 读取分隔符之间的标记。默认情况下,space 和新行是分隔符。因此,在第一个循环中最后一个运算符 >> 调用之后,您仍然在同一行上,而第一个 getline() 调用只读取换行符。