- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在寻找一种方法来将我的 get 指针设置在 fstream 末尾的位置 x。
我试过了
file.seekg(-x, ios_base::end);
但根据this question ,这一行是未定义的行为。
最佳答案
如果你想把你的指针设置在距离末端x的位置,你需要知道末端在哪里,所以你需要开始:
file.seekg(0, ios_base::end);
int length = file.tellg();
当你知道文件长度时,你可以设置你的指针:
file.seekg(length - x, ios_base::beg);
关于c++ - fstream - 如何 seekg() 以从末尾定位 x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31538554/
我正在尝试制作一个随机名称生成器。问题是为了获得文件中的行数,我必须遍历它。 所以当我需要在 getRandomName() 中再次循环获取名称时,它已经到达文件末尾 我尝试使用 seekg(0, s
我有一个文本文件: 1 2 3 4 5 6 7 8 9 我想用seekg()读取一个特定的数字 ifstream fr("duomenys.txt"); fr.seekg(2,ios::beg); i
在下面的代码中,我计算了字数、行数,然后计算了文本文件的大小。第一次使用 seekg 在第一个 while 循环后工作正常,但在第二个 while 循环后,它不起作用。它给出输出中所示的值。 #inc
我有一个非常大的 (950GB) 二进制文件,我在其中存储了 10 亿个 float 序列。 我拥有的长度为 3 的文件类型的一个小例子可能是: -3.456 -2.981 1.244 2.453 1
我有一个 2884765579 字节的文件。这是用这个函数双重检查的,它返回那个数字: size_t GetSize() { const size_t current_position
#include #include int main() { std::string str; char magic[9]; std
我有一个小程序,旨在从文件中复制一个小短语,但似乎我对 seekg() 的工作方式有误,或者我的代码阻止函数按预期工作。 文本文件包含: //Intro previouslyNoted=false 这
我有一个函数(遗留)读取文件的前几行以确定其类型,然后关闭并重新打开文件,以便它可以使用正确的解释器重新读取整个文件。要点是: void readFile(const char *filename)
我正在使用 Visual C++ 2010 开发 MFC 应用程序 我正在读取一个文件的数据,但似乎 seekg 不工作 这是我的代码 //Transaction is a class i have
所以我尝试使用 cin.get() 两次读入一串字符。输入被重定向为“程序 int main() { std::cin.seekg(1, std::ios::beg); if (std::ci
在对文件使用 seekg 和 tellg 的场景中,我想知道幕后发生了什么? // Open file and get file size int myFileSize; st
在尝试以文本模式 (Windows) 读取一个简单的 ANSI 编码文本文件时,我遇到了 seekg() 和 tellg() 的一些奇怪行为;任何时候我尝试使用 tellg(),保存它的值(作为 po
我正在尝试编写一些简单的代码来读取文本文件,但会读取第一行两次。我认为这会像这样简单 std::ifstream file; file.open("filename", std::io
所以,我很好奇,因为我一直在使用这种相当有用的方法来获取文件的大小,但有些事情困扰着我。将流锁定到文件系统上的文件和 fileStream.seekg(0, std::ios::beg); int b
我正在玩 ifstream 以熟悉它。我正在尝试使用 seekg 来判断文件的位置,但它给了我错误的结果。 想法是: 打开文件 打印文件位置 从文件中读取一个字符 打印文件位置 从文件中读取一个字符
下面的程序应该输出如下内容: Begin found space found End found 但事实并非如此。 #include #include #include #include #i
我正在尝试备份 ifstream 中的一行。 file.tellg() 正在返回一个我没有预料到的值。在下面的示例中,在读取第一行(长度为 15 个字符的字符串)后,我希望 file.tellg()
我正在尝试从特定偏移量读取二进制数据。 我是这样写数据的: long RecordIO::writeRecord(Data *record) { this->openWrite();
代码如下: #include #include #include using namespace std; int main(int argc, char *argv[]) { string
我正在尝试将 bmp 文件读入字符缓冲区,并使用进程间通信将其传输到进程间。我使用以下代码完成了此操作: std::ifstream ImageFile; char* str=ne
我是一名优秀的程序员,十分优秀!