问题标签 [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 投票
1 回答
1873 浏览

c++ - 即使 gcount 返回 0,C++ iostream 也不会设置 eof 位

我正在 Windows 下开发一个应用程序,并且我正在使用 fstreams 来读取和写入文件。

我正在用这样打开的 fstream 写作:

并用这个命令写

每次写入后关闭文件

使用 ifstream 读取打开如下:

并使用此命令阅读:

写作进展顺利。但是,我以这种方式循环阅读:

即使应该到达文件末尾,程序也会继续读取。istellg pos 为 0,gcount 也等于 0,但 fail 位和 eof 位都可以。

我为此发疯了,需要一些帮助......

0 投票
4 回答
461 浏览

c++ - C++文件I/O问题

我正在尝试打开一个通常包含内容的文件,出于测试的目的,我想在文件不可用/不存在的情况下初始化程序,因此程序应该创建空文件,但在实现它时遇到问题。这是我最初的代码

我已经尝试了我能想到的一切,ofstream,ifstream,添加ios::out了所有的变体。谁能解释我该怎么做才能解决问题。谢谢!

0 投票
2 回答
1383 浏览

c++ - c++ 将未知类型传递给函数和任何类类型定义

我正在尝试创建一个通用类来向文件写入和读取对象。称之为 ActiveRecord 类

只有一种方法,可以保存类本身:

现在我用 User 类扩展这个类:

创建和保存用户我想做类似的事情:

如何让这个 ActiveRecord::saveRecord() 方法获取任何对象和类定义,以便它写入我发送的任何内容:

看起来像:

当我们讨论它时,c++ 中默认的 Object 类型是什么。例如。在objective-c中它的id在java中它是AS3中的对象它是对象在C++中它是什么?

0 投票
4 回答
4828 浏览

c++ - Ofstream在linux上写入空文件

我有一个使用 ofstream 写入其输出的程序。使用 Visual Studio 编译时,在 Windows 上一切正常,但使用 GCC 编译时,它只会在 Linux 上写入空文件。

正在写入的目录具有 0777 权限。

奇怪的是:什么都没写,却没有报错。

gcc --version 是: (Gentoo 4.3.4 p1.0, pie-10.1.5) 4.3.4

我知道代码应该工作,所以我更喜欢寻找建议,可能是错的,而不是直接代码修复。

编辑: fwrite 似乎以完全相同的方式失败(没有任何内容,没有报告错误)。

编辑:我正在我的大学目录上通过 SSH 执行 GCC 和程序,如果它有任何意义的话。我有足够的权限来执行和写入文件(ls .> out.txt 工作得很好),只有我的程序有问题。

感谢帮助

0 投票
3 回答
5665 浏览

c++ - 奇怪的错误:无法从“int”转换为“ios_base::openmode”

我正在使用 g++ 编译一些代码。我写了以下片段:

我收到这些错误......知道为什么吗?

错误 1:从 'int' 到 'std::_Ios_Openmode' 的无效转换<br> 错误 2:初始化 'std::basic_filebuf<_CharT, _Traits>* std::basic_filebuf<_CharT, _Traits>::open( const char*, std::_Ios_Openmode) [with _CharT = char, _Traits = std::char_traits]'<p>

据我从谷歌搜索中得知,g++ 实际上在这里打破了 C++ 标准。我觉得这很令人惊讶,因为它们通常非常严格地符合标准。是这样吗?还是我做错了什么。

我对标准的参考:http ://www.cplusplus.com/reference/iostream/ofstream/open/

0 投票
5 回答
17602 浏览

c++ - ofstream 不刷新

我有以下代码,在 Suse 10.1 / G++ 4.1.0 上运行,它不写入文件:

该文件已正确创建并打开,但为空。如果我将代码更改为:

\n(在文本中添加一个),它有效。我也试过冲洗ofstream,但没有用。

有什么建议么?

0 投票
2 回答
7864 浏览

c++ - 将字符串对象的向量输出到文件

我正在尝试将字符串对象的向量输出到文件中。但是,我的代码只输出每个字符串的前两个元素。

下面的一段代码写道:

1
1

到一个文件。而不是:

09
年 7 月 1 日 10 年 7 月 1 日

这就是我需要的。

我不清楚可能出了什么问题,因为我以前在类似的上下文中使用过字符串对象。

欢迎任何帮助!

0 投票
5 回答
3341 浏览

c++ - ofstream 不将缓冲区写入文件

我正在尝试将 buf 指针的内容写入由 ofstream 创建的文件。

出于某种原因,文件是空的,但是 buf 的内容永远不会为空......我做错了什么?

0 投票
1 回答
3262 浏览

c++ - 如何恢复将数据附加到特定位置的文件?(std::ostream、streampos、tellp/seekp)

我正在尝试将一些数据附加到文件中,但在某些情况下,我想从末尾向后跳一点以覆盖文件的尾端。但是,对我seekp( pos )也没有seekp( offset, relative )任何影响(除了在使用负偏移量时抱怨)。我是在错误地使用它们还是它们坏了?

下面是一个小例子。编译器:gcc 4.4.4 版(Debian 4.4.4-6)

现在,如果我使用 0 偏移量,它应该将输出位置放在文件的末尾并且写入应该追加,对吗?好吧,它对我没有影响(osf 以前不是空的):

通常的追加方式是使用ios::app. 在这种情况下,追加有效,但尝试使用 neg/pos 偏移量没有效果,因为(来自 gcc doc):

ios::app 在每次写入之前查找文件末尾。

我也尝试使用既不ios::ate也不ios::app(可能是截断模式),效果与ios::ate.

抱歉,如果这读起来很像错误报告,但我想检查一下我在使用中是否有问题,seekp并了解它是否是特定于编译器的。

0 投票
4 回答
7471 浏览

c++ - 检查 ostream 对象是 cout 还是 ofstream,c++

C++ 中有没有办法检查一个ostream对象是对象cout还是ofstream对象?

就像是:

p>

我想这样做的原因是,我想重载<<运算符以根据使用的流类型来做两件不同的事情。

是否可以<<每次使用不同类型的流重载运算符两次?

更新以更好地反映意图。