问题标签 [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.
c++ - 即使 gcount 返回 0,C++ iostream 也不会设置 eof 位
我正在 Windows 下开发一个应用程序,并且我正在使用 fstreams 来读取和写入文件。
我正在用这样打开的 fstream 写作:
并用这个命令写
每次写入后关闭文件
使用 ifstream 读取打开如下:
并使用此命令阅读:
写作进展顺利。但是,我以这种方式循环阅读:
即使应该到达文件末尾,程序也会继续读取。istellg pos 为 0,gcount 也等于 0,但 fail 位和 eof 位都可以。
我为此发疯了,需要一些帮助......
c++ - C++文件I/O问题
我正在尝试打开一个通常包含内容的文件,出于测试的目的,我想在文件不可用/不存在的情况下初始化程序,因此程序应该创建空文件,但在实现它时遇到问题。这是我最初的代码
我已经尝试了我能想到的一切,ofstream,ifstream,添加ios::out
了所有的变体。谁能解释我该怎么做才能解决问题。谢谢!
c++ - c++ 将未知类型传递给函数和任何类类型定义
我正在尝试创建一个通用类来向文件写入和读取对象。称之为 ActiveRecord 类
只有一种方法,可以保存类本身:
现在我用 User 类扩展这个类:
创建和保存用户我想做类似的事情:
如何让这个 ActiveRecord::saveRecord() 方法获取任何对象和类定义,以便它写入我发送的任何内容:
看起来像:
当我们讨论它时,c++ 中默认的 Object 类型是什么。例如。在objective-c中它的id在java中它是AS3中的对象它是对象在C++中它是什么?
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 工作得很好),只有我的程序有问题。
感谢帮助
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/
c++ - ofstream 不刷新
我有以下代码,在 Suse 10.1 / G++ 4.1.0 上运行,它不写入文件:
该文件已正确创建并打开,但为空。如果我将代码更改为:
\n
(在文本中添加一个),它有效。我也试过冲洗ofstream,但没有用。
有什么建议么?
c++ - 将字符串对象的向量输出到文件
我正在尝试将字符串对象的向量输出到文件中。但是,我的代码只输出每个字符串的前两个元素。
下面的一段代码写道:
1
1
到一个文件。而不是:
09
年 7 月 1 日 10 年 7 月 1 日
这就是我需要的。
我不清楚可能出了什么问题,因为我以前在类似的上下文中使用过字符串对象。
欢迎任何帮助!
c++ - ofstream 不将缓冲区写入文件
我正在尝试将 buf 指针的内容写入由 ofstream 创建的文件。
出于某种原因,文件是空的,但是 buf 的内容永远不会为空......我做错了什么?
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
并了解它是否是特定于编译器的。
c++ - 检查 ostream 对象是 cout 还是 ofstream,c++
C++ 中有没有办法检查一个ostream
对象是对象cout
还是ofstream
对象?
就像是:
p>我想这样做的原因是,我想重载<<
运算符以根据使用的流类型来做两件不同的事情。
是否可以<<
每次使用不同类型的流重载运算符两次?
更新以更好地反映意图。