I am tring to use seekg to move the pos and then read a line from the .txt.
However, I can not get the same string(a completed line) after using seekp, though the pos is same.
The compiler is MinGW 11.2.0 64-bit on x86 windows 11
Here is the test.txt
2   33.10   30.10   29.90   33.00   33.20   33.00   32.90   33.10   40.20   40.20   40.00   39.90   40.30   37.20   40.30   36.70
4   33.00   30.10   29.90   33.00   33.10   32.90   32.90   33.00   40.30   40.20   40.00   40.00   40.30   37.30   40.20   36.70
6   33.00   30.10   29.90   33.00   33.10   33.00   32.90   33.00   40.20   40.30   40.10   40.00   40.20   37.20   40.10   36.90
Here is my code.
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main(){
string file_path = "./test.txt";
string s;
// don't use seekg
fstream f(file_path);
    getline(f, s);
    int p = f.tellg();
    cout << "the cur pos is:" << p << endl;
    getline(f, s);
    cout << s << endl;
    getline(f, s);
    cout << s << endl;
    f.close();
// use seekg
    fstream t(file_path);
    t.seekg(p, ios::beg);
    p = t.tellg();
    cout << "the cur pos is:" << p << endl;
    getline(t, s);
    cout << s << endl;
}
And the output
the cur pos is:139
2   33.10   30.10   29.90   33.00   33.20   33.00   32.90   33.10   40.20   40.20   40.00   39.90   40.30   37.20   40.30   36.70
4   33.00   30.10   29.90   33.00   33.10   32.90   32.90   33.00   40.30   40.20   40.00   40.00   40.30   37.30   40.20   36.70
the cur pos is:139
2.90    33.10   40.20   40.20   40.00   39.90   40.30   37.20   40.30   36.70
For supplement, here is the string s in memory.
2\t33.10\t30.10\t29.90\t33.00\t33.20\t33.00\t32.90\t33.10\t40.20\t40.20\t40.00\t39.90\t40.30\t37.20\t40.30\t36.70
4\t33.00\t30.10\t29.90\t33.00\t33.10\t32.90\t32.90\t33.00\t40.30\t40.20\t40.00\t40.00\t40.30\t37.30\t40.20\t36.70
2.90\t33.10\t40.20\t40.20\t40.00\t39.90\t40.30\t37.20\t40.30\t36.70
I don't know if it's the problem that there are \ts in the string.
So how can I solve this problem and get a completed line using seekg? It would be appreciated if someone can give me a hand.
 
    