fstream相关内容

如何确定由std :: ofstream打开的文件的当前大小?

我有一个类,其文件流的类型为ofstream.构造函数以追加模式打开文件,并且所有消息总是写在文件末尾. 我需要以最大固定大小(例如1Mb)写入outputFile,然后我需要关闭,重命名和压缩它,然后打开一个同名的新文件. 当达到一定大小的文件时,需要执行此操作. 我尝试使用tellg(),但是在阅读了相关内容(和这)在互联网上,我知道这不是正确的方法. 由于我是C ++ ..
发布时间:2020-05-19 21:45:37 C/C++开发

C ++-fstream和ofstream

两者之间有什么区别 fstream texfile; textfile.open("Test.txt"); 和 ofstream textfile; textfile.open("Test.txt"); 它们的功能是否相同? 解决方案 ofstream仅具有用于输出的方法,因此例如,如果您尝试textfile >> whatever,它将无法编译. fstream可以用 ..
发布时间:2020-05-19 21:45:29 C/C++开发

在函数中返回ifstream

这可能对您来说是一个非常讨厌的问题:如何(如果可能的话)从函数返回ifstream? 基本上,我需要从用户那里获取数据库的文件名,如果不存在具有该文件名的数据库,则需要为用户创建该文件.我知道该怎么做,但只能在创建文件后要求用户重新启动程序.我想尽可能避免给用户带来不便,但是下面的函数无法在gcc中编译: ifstream getFile() { string fileName ..
发布时间:2020-05-19 21:45:23 C/C++开发

为什么Windows无法读取0x1A(EOF)字符以外的字符,而Unix可以读取?

可能重复: 为什么在读取eof时设置了故障位?有出路吗? 我正在编写一个小程序,它在Mac OS和Ubuntu(Unix ...)上运行良好.程序必须读取数据文件,并将字节(char s/unsigned char s)和memcpy()分成浮点数.这将包括采用以下四个值进行阅读和阅读的过程.左移它们到32位int中,然后将int的存储器复制到float中.像这样: 0x43 0x6 ..
发布时间:2020-05-08 19:03:21 C/C++开发

如何从C ++文件中获取行号?

在用ifstream打开的文件中获取当前行的行号的最佳方法是什么?因此,我正在读取数据,我需要存储它所在的行号,以便稍后在数据不符合规范的情况下显示它. 解决方案 如果您不想将自己限制为std::getline,则可以使用从std::streambuf派生的类,并且跟踪当前行号: class CountingStreamBuffer : public std::streambuf { ..
发布时间:2020-04-30 11:48:37 C/C++开发

C ++二进制文件和迭代器:使用ifstreambuf_iterator以1:1离开?

这个答案指出C ++不适合迭代二进制文件,但这是我现在需要什么,简而言之我需要以“二进制”方式操作文件,是的,所有文件都是二进制文件,甚至是.txt文件,但是我正在写一些操作图像文件的东西,所以我需要读取文件结构良好,数据是以特定方式排列的。 我想在数据结构中读取整个文件,例如 std :: vector 所以我几乎可以立即关闭文件并使用内存中的内容而不再关心磁盘I / O. ..
发布时间:2018-11-15 22:28:15 C/C++开发

以相反顺序c ++从文本文件中读取行

我需要找到一种从文件中读取最后6行数据的方法。 例如,如果我有 1 2 3 4 5 6 7 8 9 10 我需要阅读才能获得 10,9 ,8,7,6,5,4。 这些需要放入变量或字符串中以便稍后输出。目前我已经设法读取文件的最后一行,但我不知道如何读取其他5个数字。 #include #include ..
发布时间:2018-08-24 18:11:39 C/C++开发

如何从文件中读取整行(带空格)?

我正在使用STL。我需要从文本文件中读取行。如何读取行直到第一个 \ n 但是直到第一个''(空格)? 例如,我的文本文件包含: Hello world 嘿那里 如果我这样写: ifstream文件(“FileWithGreetings.txt”); string str(“”); 档案>>海峡; 然后 str 将仅包含“Hello ..
发布时间:2018-08-24 17:59:37 C/C++开发

为什么fstream.open()失败?“如果模式同时设置了截断和应用程序”?

我花了很长时间才发现我的 .open()调用没有打开文件,因为我有 trunc 和 app 模式选项设置。我只是在收到 C ++文档上的一个小笔记后才想到这一点。 这似乎是一个奇怪的问题。为什么会这样?你不能截断文件,然后只附加?或者这被认为是多余的规范? 解决方案 iostream 开放模式对应大致到 fopen 模式和 fopen 具有截断的 w 模式和 a 附加的模式,但没有两 ..
发布时间:2018-08-24 17:48:47 C/C++开发

std :: fstream如何同时进出?

我刚开始想知道 - 实际上 std :: fstream 是如何用 std :: ios :: in 和 std :: ios :: out 实际上应该有效吗?它该怎么办?写一些东西(例如)一个空文件,然后读......什么?刚写的价值?文件“指针”/“光标”在哪里?也许答案已经在那里,但我无法找到它。 解决方案 什么是 std :: fstream ? std :: fstream ..
发布时间:2018-08-24 17:37:17 C/C++开发

使用ifstream在两个线程中处理相同的文件

我的应用程序中有一个包含大量信息的输入文件。按顺序读取它,并且一次只读取一个文件,这对我的应用程序的使用是不够的。理想情况下,我希望有两个线程,它们具有独立且不同的 ifstream s读取同一文件的两个唯一文件偏移量。我不能只启动一个 ifstream ,然后使用它的复制构造函数复制它(因为它是不可复制的)。 那么,我该如何处理? 我可以立即想到两种方式, 为第二个帖子构建一个新的 ..
发布时间:2018-08-24 17:28:51 C/C++开发

从文件到换行符读取空格分隔的数字

我有一个包含以下数据的文本文件。 第一行是: 5 4 3 2 1 第二行是: 1 2 3 4 5 我试图一次读取一行数据,因为我的第一个链表对象将使用第一行的数据,我的第二个链表对象将使用第二行的数据。我能想到的最好的是以下函数: void polynomial :: allocate_poly(std :: ifstream& in,const char * ..
发布时间:2018-08-24 17:26:44 C/C++开发

为什么我的fstream被隐式删除?

我正在使用一些HID设备,所有设备都有从以下基类派生的类(在 main.h 中): class HIDDevice { public: hid_device * device; 虚拟空读(std :: fstream)= 0; 虚拟空写(std :: fstream)= 0; }; 这是从中派生出来的设备类之一( device.h ) : clas ..
发布时间:2018-08-03 16:28:09 C/C++开发

将非常大的ppm文件转换为JPEG / JPG / PNG?

所以我编写了一个C ++程序,可以生成非常高分辨率的图片(分形)。 我使用fstream将所有数据保存在.ppm文件中。 一切正常,但当我进入真正的高分辨率(38400x21600)ppm时文件有~8千兆字节。 然而,凭借我的16 GB Ram,我仍然无法转换那张照片。我下载了几个转换器,但他们无法处理它。当我试图“导出为......”时,甚至Gimp也崩溃了。 那么,有没有人知道 ..
发布时间:2018-07-26 16:50:18 C/C++开发