问题标签 [fstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1434 浏览

c++ - 将带有结构的向量序列化为 .dat 文件时,我做错了什么?

如果我输入

说明:苹果

数量:10

批发成本:30

零售成本:20

添加日期:十二月

这些是我的 .dat 文件中的内容:

1Apple103020十二月

但是当我加载我的程序时,它没有正确加载结构,导致我的列表中有 0 个项目。这是它应该看起来的样子,还是我做错了什么。

代码:

0 投票
4 回答
1376 浏览

c++ - 当我将它放在我的 while 语句之外时,为什么我的 ofstream 不起作用?

每次我做任何事情,并且在我的主函数中调用我的 while(1) 时,我的文件都会被清除。这让我疯狂。我什么都试过了。我尝试将我的 ofstream 输出(“data.dat”);在 while(1) 语句之外,因此不会每次都调用它,但是不会像 ofstream 那样将任何内容写入文件甚至无法正常工作!

我试图使 ofstream 静态,所以它不会像这样一遍又一遍地调用:

那是行不通的。

就像我说的,当我将 ofstream 放在 while 语句之外时,没有任何内容写入文件。像:

有人能告诉我为什么我的检查以防止读取空文件不起作用吗?

我的支票:

我厌倦了我的程序在启动时一次又一次地崩溃,因为我的向量被设置为 2 亿的大小。我已经为此尝试了一堆东西......它都不起作用......请上帝帮我解决这两个问题!我已经为此工作了 18 个小时(整晚是的),我几乎完成了。我求求你....

我的代码:

0 投票
2 回答
6041 浏览

c++ - 如何将位集数据写入文件?

我有一个 std::bitset 我想逐位写入文件,但是 fstream 的 write 函数当然不支持这个。除了使用字符串将每个 8 位组转换为 char 并编写它之外,我想不出另一种方法......

有谁知道好的方法吗?

0 投票
4 回答
6344 浏览

c++ - fstream 替换文件的一部分

当我做

它似乎用这 100 个字节替换整个文件,而不是只替换适当的 100 个字节,就好像我指定了 ios::trunc。有没有一种可移植的方式让它不截断文件?

编辑:添加 ios::in 似乎可以解决问题,为什么需要这样做,这是标准行为吗?

编辑#2:我不想附加到现有文件。我需要替换 100 个字节,而其余部分不受影响。

0 投票
2 回答
1858 浏览

c++ - seekp() 在二进制模式下替换文件部分的问题

我在以二进制模式替换文件的一部分时遇到了一些麻烦。由于某种原因,我的 seekp() 行没有将文件指针放在所需的位置。现在它将新内容附加到文件的末尾,而不是替换所需的部分。

难道我做错了什么?

提前非常感谢。

0 投票
7 回答
2385 浏览

c++ - C ++在读取文件时在字符串开头添加回车符

我有两个问题:

1) 为什么我的代码在 selected_line 字符串的开头添加了回车符?
2)你认为我用来从文件中返回随机行的算法足够好并且不会引起任何问题吗?

一个示例文件是:

我的代码:

编辑:好的,你们中的一些人的建议很有意义。该字符串可能被读取为“\nmys​​tring”。所以我想我现在的问题是,我将如何从字符串中删除第一个 \n ?

0 投票
2 回答
466 浏览

c++ - 在 c++ 中使用溢出链接中的 fstream 文件

我有一个文件,我想使用记录读取和写入二进制文件。一开始我有一个空文件,我想添加新记录,但是当我使用 seekp 功能时,位置在(-1)可以吗?因为当我检查时,我发现它没有向文件写入任何内容。见代码:

如果有人能告诉我为什么我不能在文件中写任何东西,我会非常感谢它。

提前致谢,

格雷格

0 投票
1 回答
819 浏览

c++ - std::fstream 文件超过 2gb

如果我有一个带有 32 位 std::streampos 的 std::fstream 实现,我应该使用什么策略?如果我想移动位置,我可以分几步完成(10gb - 10 次 +1gb)。我怎样才能获得职位?或者我应该将当前位置保留在 fstream 之外的某个变量中吗?

PS我不能改变STL的实现。

0 投票
7 回答
1963 浏览

c++ - 重定向 C++ fstream

所以我有一个 C++ 程序,它通常在执行时会将内容写入日志文件。这是使用 fstream 完成的。但是,现在我想包含关闭日志记录的功能。本质上,我的代码如下所示:

在我的代码中,有一堆语句,如:

现在,如果“isLogging”为真,我不想打印这些。我可以用一堆 if 语句围绕它们,但我更喜欢比这更干净的东西。我认为有某种方法可以获取 C++ 流并将其重定向到“无”,这样当使用 << 运算符时,什么都不会打印。

有谁知道如何重定向流,或者对如何以优雅的方式处理这个有任何其他想法?

谢谢,科林

0 投票
2 回答
1440 浏览

c++ - 通过成员函数保持来自 fstream 的流打开

我试图保持一个流到文件 /dev/fb0 (linux framebuffer) 在几个 Qt 成员函数中打开。目标是使用 myscreen::connect 函数打开帧缓冲区

理想情况下,这将打开帧缓冲区并创建一个新的 QImage 来充当正在写入屏幕的数据的内存缓冲区。然后我的“图像”将通过 bits() 函数指向屏幕上的第一个可见像素(内存)。我必须实现这一点,因为我的硬件不支持默认内存映射。

然后我想将它粘贴到屏幕上:

我似乎无法获得指向第一个可用像素的指针,也无法从 GCC 那里得到关于 myscreen_Fb 未在范围内声明的投诉。有任何想法吗?

更新

我进行了建议的更改并在类中声明了该函数,但得到了这个让我发疯的错误。

它指的是包含以下内容的行:

布莱斯