使用带有tellp()和seekg()的tellp()和tellg()指针的问题

时间:2019-11-05 19:27:38

标签: c++ file c++11 fstream

我试图学习如何处理通过文本文件接收的数据,并且试图利用此功能来接收关键位置的位置索引;

展示我的问题的代码如下:

'''cout <<“程序已启动。” << endl                 <<“测试fileName.get();” << endl << endl;

    fstream fileName("filename", ios::in | ios::out | ios::beg);
    if (!fileName.is_open()) {
            cout << "file didn't open." << endl;
            cin.get();
            return 0;
    }

    fileName.seekp(0, ios::end);
    fileName.seekg(0, ios::beg);

    int endOf = int(fileName.tellp());
    int startOf = int(fileName.tellg());

    cout << "Starting index: " << startOf << endl;
    cout << "End index: " << endOf << endl;'''

如您所见,我正在使用seekg()和seekp()将指针分别放置在文件的开头和结尾。该文件中确实有数据。

执行时最后显示的值是我放置在底部的任何一个搜索函数的值,几乎就像更改的seekp()也会更改seekg()一样,但是根据我从参考资料中了解到的值,它们应该是两个不同的指针。

我知道我可以将输入保存在seek()函数之间,但是尽管我手动将它们放置在不同的位置,但我想了解为什么它们返回相同的值。

如果您能提供任何指导,我将不胜感激。

0 个答案:

没有答案