问题标签 [ofstream]

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 投票
5 回答
834 浏览

c++ - 使用 ofstream 将文本写入文件末尾

如何使用 ofstream 将文本写入文件末尾而不擦除其内容?

0 投票
4 回答
62907 浏览

c++ - 将stringstream内容写入ofstream

我目前使用std::ofstream如下:

然后我尝试将std::stringstream对象传递给outFile如下:

现在我outFile只包含垃圾:“0012E708”到处重复。

GetHolesResults我可以写

它将正确输出outFile

关于我做错了什么有什么建议吗?

0 投票
7 回答
14751 浏览

c++ - 将 cout 分配给变量名

在 ANSI C++ 中,如何将 cout 流分配给变量名?我想要做的是,如果用户指定了输出文件名,我将输出发送到那里,否则将其发送到屏幕。所以像:

我也尝试将其作为宏函数执行:

但这也给了我一个编译器错误。

我想我可以为每个输出使用一个 IF-THEN 块,但如果可以的话,我想避免这种情况。有任何想法吗?

0 投票
2 回答
2035 浏览

c++ - 如何为 7z 归档格式编写二进制数据?

我一直在倾注 7z 存档格式的格式描述和源代码,但我仍然无法编写有效的容器。我假设我可以创建一个空容器......无论如何这是我的开始:

我认为我的主要问题是缺乏对 std::ofstream::write() 的理解。字节是“无符号字符”,UInt64 和 UInt32 都是“无符号长”。

UPDATE0:正如每个人都指出的那样,如果我在大端机器上运行它会是一个问题。这不是这里的情况。根据 Fredrik Janssen,我应该投射非数组的地址。我还应该提到 CrcCalc() 是 LZMA SDK 中的一个函数。添加 & 有点帮助,这是第一个 unsigned char[6] 有一些问题。

UPDATE1:工作代码在下面获取一个空的存档文件。

注意:CrcGenerateTable() 和 CrcCalc() 来自 LZMA SDK。

0 投票
2 回答
1432 浏览

c++ - 流错误

这是参考我问的另一个问题,尽管这完全是它自己的问题。

编译时出现两个错误:

1>.\asst4.cpp(73):错误 C2065:'outfile':未声明的标识符

1>.\asst4.cpp(73) : 错误 C2228: '.close' 左侧必须有类/结构/联合

我对我在这里做错了什么感到有些困惑?有什么建议或想法吗?(实际的输出文件靠近代码的顶部。

这是完整的代码:

提前谢谢!杰夫

0 投票
7 回答
44808 浏览

c++ - 如何将 ASCII 字符的十六进制值写入文本文件?

这是我目前所拥有的:

我试过做 stream.hex、stream.setf(std::ios::hex),以及在 Google 上搜索了一下。我也试过:

但这似乎也不起作用。

以下是它当前产生的一些输出的示例:

我希望输出如下所示:

0 投票
4 回答
12318 浏览

c++ - 如何在 ofstream 上进行 fsync?

我想确保已将 ofstream 写入磁盘设备。这样做的可移植方式(在 POSIX 系统上可移植)是什么?

open如果我在只读附加模式下单独文件以获取文件描述符并使用它调用,这是否解决了问题fsync?像这样:

0 投票
13 回答
12734 浏览

c++ - 用c++写一个循环文件

我需要用 C++ 编写一个循环文件​​。程序必须在文件中写入行,当代码达到最大行数时,它必须覆盖文件开头的行。

有人知道吗?

0 投票
5 回答
2309 浏览

c++ - 使用 C++ 编写文件和目录

我正在开发一个创建 2000 个目录并在每个目录中放置一个文件(只有 10KB 左右的文件)的程序。我正在使用 mkdir 制作 dirs 和 ofstream (我也尝试过 fopen )将文件写入固态驱动器(我正在做速度测试以进行比较)。

当我运行代码时,目录创建良好,但文件在写入 1000 左右后停止写入。我尝试在每次写入之前延迟,以防它出现某种过载,并且还尝试使用 fopen 而不是 ofstream,但它总是在第 1000 个文件标记附近停止写入文件。

这是写入文件并退出的代码,告诉我它在哪个文件上失败了。

有没有人有这方面的经验或有任何理论?

这是完整的代码:此代码从一个随机数创建一个 2 位十六进制目录,然后从一个随机数创建一个 4 位十六进制目录,然后在该目录中存储一个文件。在写入 1000 个文件后,它以“点失败”(我添加的一个 cout)退出。这表明它无法创建文件,但它应该已经检查过该文件不存在。有时它在 0 上失败,从底线开始第二个(文件已经存在的 else 子句)。任何帮助表示赞赏,我觉得这与我正在尝试创建的已经存在的文件有关,但是这些文件在我的文件存在检查中不知何故滑倒了。有没有办法为失败的文件创建尝试获取错误消息?

0 投票
7 回答
15815 浏览

c++ - 如何轻松地将输出缩进到 ofstream?

有没有一种简单的方法可以将输出缩进到 ofstream 对象?我有一个空终止并包含换行符的 C++ 字符数组。我想将其输出到流中,但每行缩进两个空格。是否有一种简单的方法可以使用流操纵器来执行此操作,例如您可以使用流的特殊指令更改整数输出的基数,或者我是否必须手动处理数组并在检测到的每个换行符处手动插入额外的空格?

似乎 string::right() 操纵器很接近:

http://www.cplusplus.com/reference/iostream/manipulators/right/

谢谢。

-威廉