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

c++ - 从文本文件中读取直到 EOF 重复最后一行

以下C++代码使用ifstream对象从文本文件(每行有一个数字)中读取整数,直到到达EOF为止。为什么它读取最后一行的整数两次?如何解决这个问题?

代码:

输入.txt

输出

注意:我已跳过所有错误检查代码以保持代码片段较小。在 Windows (Visual C++)、cygwin (gcc) 和 Linux (gcc) 上可以看到上述行为。

0 投票
12 回答
90979 浏览

c++ - mmap() 与读取块

我正在开发一个程序,该程序将处理大小可能为 100GB 或更大的文件。这些文件包含可变长度记录集。我已经启动并运行了第一个实现,现在正在寻求提高性能,特别是在更有效地执行 I/O 方面,因为输入文件被扫描了很多次。

mmap()是否有使用与通过 C++ 库读取块的经验法则fstream?我想做的是将大块从磁盘读取到缓冲区中,处理缓冲区中的完整记录,然后读取更多。

mmap()代码可能会变得非常混乱,因为' mmapd 块需要位于页面大小的边界上(我的理解),并且记录可能会跨越页面边界。使用fstreams,我可以寻找记录的开头并再次开始阅读,因为我们不限于阅读位于页面大小边界上的块。

在没有实际编写完整实现的情况下,如何在这两个选项之间做出决定?任何经验法则(例如,mmap()快 2 倍)或简单测试?

0 投票
7 回答
53563 浏览

c++ - 从 std::fstream 获取 FILE*

是否有(跨平台)方法从 C++ std::fstream 获取 C FILE* 句柄?

我问的原因是因为我的 C++ 库接受 fstreams 并且在一个特定的函数中我想使用一个接受 FILE* 的 C 库。

0 投票
13 回答
75559 浏览

c++ - using fstream to read every character including spaces and newline

I wanted to use fstream to read a txt file.

I am using inFile >> characterToConvert, but the problem is that this omits any spaces and newline.

I am writing an encryption program so I need to include the spaces and newlines.

What would be the proper way to go about accomplishing this?

0 投票
8 回答
88552 浏览

c++ - 如何使用 fstream 从第二行读取文本文件?

如何让我的std::fstream对象从第二行开始读取文本文件?

0 投票
3 回答
1714 浏览

c++ - 为什么 c++ ifstreams 不能从设备读取?

我知道我不应该开始使用 c++ io,整个“类型安全”论点是一个红鲱鱼(有人真的发现这是他们最紧迫的问题之一吗?)。无论如何,我做到了,并发现了 ifstreams 和 FILE*s 以及普通的旧文件描述符之间的一个奇怪区别:ifstreams 无法从设备中读取。谁能想到一个原因?

0 投票
1 回答
725 浏览

c++ - 如何为 fstream 对象设置标志 FILE_FLAG_BACKUP_SEMANTICS?

如何为 fstream 对象设置标志 FILE_FLAG_BACKUP_SEMANTICS?

您可以使用 fstream 设置大多数标志,但似乎这个标志不可用。您可以在此处阅读有关该标志的信息。

0 投票
5 回答
957 浏览

c++ - C++ 文件处理(结构)

下面的代码,当用 g++ 编译和运行时,打印 '1' 两次,而我希望 '1' 只打印一次,因为我将单个结构转储到文件中,但是在回读时它似乎正在读取两个结构. 为什么?

0 投票
3 回答
468 浏览

c++ - 输出到我找不到的 C++ 文件时出错

不像“在stackoverflow上找不到答案”,而是“看不到我做错了什么”,差别很大!

Anywho,代码附在下面。它所做的是相当基本的,它接收一个用户创建的文本文件,并吐出一个已加密的文件。在这种情况下,用户告诉它在每个真实字符之间放置多少垃圾字符。(IE:如果我想用 1 个垃圾字符加密单词“Hello”,它看起来像“9H(eal~lo”)

我的问题是由于某种原因,它没有正确读取输入文件。我使用与之前解密时相同的设置来读取文件,但这次它正在读取垃圾字符,当我告诉它输出到文件时,它会在屏幕上打印出来,看起来像输出文件中没有任何内容(尽管它正在创建中,所以这意味着我已经正确地做了一些事情,请指点我!

代码:

我在 while 循环的开头粘贴的是声明变量,这是一个更大的代码的一部分,它不仅会加密,还会解密,我把解密部分去掉了,因为它工作得很好,这就是我的部分我有一个问题。

提前感谢您的协助!

编辑:: 我正在使用visual C++ express 2008,它回击说根本没有错误,也没有任何警告。

重要编辑 原来它正在输出到文件!但是,它输出的是数字而不是 ascii 字符,并且它也输出了应该是的字母的垃圾字符。当它回到“infile.get(letter)”时,它没有得到一个新字符。所以现在看来​​问题有两个:1)打印数字而不是ascii字符。2)使用垃圾而不是它应该得到的实际字符。

已回答的问题 在“重要编辑”中找到了第二部分...如果您将某些东西命名为 test.txt...这意味着当您将其键入 C++ 程序时它实际上称为 test.txt.txt。只是表明是微小的、微小的、简单的细节会导致任何程序出错。感谢乔治·肖尔。您对输入文件位于错误位置的评论使我产生了尝试实际项目名称的想法。

感谢所有帮助解答的人!

0 投票
4 回答
11672 浏览

c++ - 从文件流中检测换行字节

我正在尝试从包含组织名称(不带空格)和浮点整数的文本文件中收集信息。我想将此信息存储在数组结构中。

到目前为止,我遇到的问题是收集信息。这是文本文件的示例:

CBA 12.3 4.5 7.5 2.9 4.1

TLS 3.9 1 8.6 12.8 4.9

每个组织最多可以有 128 个不同的号码,文本文件中最多可以有 200 个组织。

这是我的结构到目前为止的样子:

我的主要:

和getdata函数:

我在 getdata 函数中试图实现的是:首先将组织名称存储到结构中,然后将每个浮点数读入数据数组,直到程序检测到换行字节。但是,到目前为止,我对换行字节的检查不起作用。

假设变量cMAX已经定义。

我应该如何正确处理这个问题?