问题标签 [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 回答
7053 浏览

c++ - 使用 fstream 加载二进制文件

我正在尝试使用fstream以下方式加载二进制文件:

但它不起作用。在 Ubuntu 中,它std::bad_cast异常崩溃。在 MSVC++ 2008 中,它只打印 0。

我知道我可以file.read用来加载文件,但我想使用迭代器并operator>>加载文件的一部分。那可能吗?为什么上面的代码不起作用?

0 投票
1 回答
1387 浏览

c++ - Writing to default-constructed fstream: Undefined Behavior?

Consider the following:

This runs with no complaint when built with VC 8.0, but crashes when built with VC 10.0 beta.

I have some legacy code that actually relies on the VC 8 behavior, where we inherit from basic_fstream to add functionality:

There are cases where it is beneficial to inspect the additional state without incurring the disk I/O (e.g. test writes).

I'm assuming this is undefined behavior, and I'm lucky it doesn't crash in VC 8. That said, I've had enough issues evaluating VS 2010 beta that I'd like to be sure. Can anyone out there say definitively?

EDIT: Call stack in VS 2010:

Call stack on VS 2005:

Also, compiles and runs with no errors with gcc-4.3.3 on Ubuntu.

*** EDIT:

After more digging, it appears that this in fact is a bug in Visual Studio 2010 Beta 1.

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=456890

According to this report, it has been fixed for the official release.

Thanks for all of your input.

0 投票
6 回答
3083 浏览

c++ - 如何将声明为双精度的变量输出到 C++ 中的文本文件

我对 C++ 很陌生,我想知道如何将声明为 double 的变量输出/写入 txt 文件。我知道如何使用 fstream 输出字符串,但我不知道如何发送其他任何内容。我开始认为除了字符串之外,您不能将任何内容发送到文本文件,对吗?如果是这样,那么您将如何将存储在变量中的信息转换为字符串变量?

这是我试图将这个概念实现到其中的代码,它相当简单:

所以我想做的是使用这些变量并将它们输出到文本文件。另请告知我需要用于此源代码的包含。请随时就如何以其他方式改进我的代码提出建议。

提前致谢。

0 投票
2 回答
2300 浏览

c++ - Problem with file stream/fstream in Xcode C++

Here is a simple program to output to a text file:

All that ends up being wrote to my text file is, "The answer is almost " and the data is not displayed at all. What am I doing wrong? or could it be a problem with Xcode since I am using that as an IDE.

0 投票
8 回答
87567 浏览

c++ - 如何检查文件是否存在并且在 C++ 中是否可读?

我有一个 fstream my_file("test.txt"),但我不知道 test.txt 是否存在。如果它存在,我想知道我是否也可以阅读它。怎么做?

我使用 Linux。

0 投票
3 回答
3671 浏览

c++ - 写入二进制数据

我正在使用 fstream 写入二进制文件,并在使用二进制标志打开文件时。

我需要将一些文本写成二进制,一个简单的写就可以了。问题是我还需要写(如十六进制所示)0。在二进制记事本中打开时的值显示为零,但是当试图写这个值不为零时,它是十六进制的值 30。

您如何编写这样的特定数据?

0 投票
4 回答
66583 浏览

c++ - 进行文件管理操作时,Visual Studio 在哪里搜索 txt 文件?

我知道这是一个菜鸟问题,但是我以前使用过 Python,例如,当您想简单地访问 .txt 文件时,您所要做的就是确保 txt 文件位于同一目录中。我在下面有以下 C++ 代码,但它没有找到我保存在桌面上的 Numbers.txt 文件。我在文件中只有一行 double 类型的数字。我要做的就是找到文件中所有数字的平均值。该程序运行良好,但无法正确打印输出。通过仅打印输出 [0] 查看打印到输出中的内容后,我发现该文件没有将其内容复制到数组中。有人可以为我解决这个小问题,或者至少为我指出一个好的教程的正确方向吗?

0 投票
6 回答
7797 浏览

c++ - C++ 将对象存储在文件中

我有一个对象列表,我想将它们存储在一个尽可能小的文件中,以便以后检索。我一直在仔细阅读本教程,并且开始(我认为)理解,但有几个问题。这是我正在使用的片段:

现在,这是改编自片段

取自教程。现在我相信它正在做的是将对象转换为指针,获取值和大小并将其写入文件。但如果它正在这样做,为什么还要费心进行转换呢?为什么不从一开始就取值呢?为什么它需要尺寸?此外,根据我的理解,为什么

不编译?i 是一个迭代器(迭代器不是指针吗?)。或者干脆

为什么我仍然需要搞乱地址?我不是将数据存储在文件中吗?如果地址/值自行持续存在,为什么我不能只存储以纯文本分隔的地址,而不是稍后获取它们的值?

我还应该使用 .txt 扩展名吗?<edit>那我应该用什么代替呢?我尝试了 .dtb 并且无法创建该文件。</edit>实际上,我什至无法使用 ios::binary 标志打开文件而不会出现错误。我在传递文件名时也遇到了麻烦(作为字符串类字符串,由 c_str() 转换回来,它可以编译但会出错)。

抱歉这么多小问题,但基本上都概括为如何有效地将对象存储在文件中?

0 投票
5 回答
4544 浏览

c++ - c++中的ifstream位置

我正在尝试为我的作业编写一个简单的 UTF-8 解码器。我对 C++ 还很陌生,所以请耐心等待...

我必须确定编码是否有效,并在任何一种情况下都以十六进制输出 UTF-8 字符的值。假设我已经读取了第一个字节并使用这个第一个字节来确定这个 UTF8 字符中的字节数。问题是,在我读取第一个字节后,我无法将 ifstream 位置设置回一个字节并读取整个 UTF-8 字符。我已经尝试过 seekg() 和 putback(),但我总是得到 BUS 错误或一些不是我的测试数据的奇怪输出。请帮忙,谢谢。

即使我可以将 peek() 用于第一个字节,但我仍然必须读取以下字节以确定编码是否有效。设置回流位置的问题仍然存在。

0 投票
3 回答
15447 浏览

c++ - 指定绝对路径时无法打开 fstream

我知道这很可笑,但我似乎无法让简单的 C++ ofstream 代码工作。您能否告诉我以下代码可能有什么问题:

每当我指定绝对路径时,打开 ofstream 都会失败。相对路径似乎没有问题。我真的不确定这里的问题是什么。