问题标签 [ifstream]
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++ - 打开以前截断的文件时出现奇怪的垃圾数据
在我的程序中,我已将标准输出重定向到打印到文件“console.txt”。一个函数像这样写入该文件:
我有一个从该文件中读取的函数,如下所示:
第一次通过readLogFile
,一切正常。然而,之后,它开始出现问题。它将在 console.txt 的第一行中读取为空白字符串。我通过在 gvim 中打开的 console.txt 逐步完成了程序,并监控了它是如何变化的。第一次,当它正常工作时,console.txt 看起来像这样:
这是应该的。然后程序转到clearLogFile
,然后 console.txt 为空。但是,第二次打开时ifstream
,console.txt 看起来像这样:
这一次,当getline
将第一行读入时str
,str
是空白的。奇怪的是,该cerr << "str: " << str << endl;
行仍然打印str
为“moved UP.@191 191 191 0 0 0”,尽管str
在 gdb 中检查显示它是空的。
有人知道这里发生了什么吗?
c++ - 如何在 C++ 中使用 ifstream 打开和读取文件?
我想打开一个文件并从中读取一行。文件中只有一行,所以我真的不需要担心循环,尽管为了将来参考,知道如何读取多行会很好。
我该怎么做?另外,就成功打开而言,我是否正确处理了文件打开?
谢谢。
c++ - 解析存储在 ASCII 中的大型浮点文件的最佳方法?
解析存储在 ASCII 中的大型浮点文件的最佳方法是什么?
最快的方法是什么?我记得有人告诉我使用 ifstream 不好,因为它只处理少量字节,最好先将文件读入内存。真的吗?
编辑:我在 Windows 上运行,文件格式适用于存储在 xyzrg b 等行中的点云。我正在尝试将它们读入数组。此外,每个文件大约 20 MB,但我有大约 10 GB 的文件。
第二次编辑:每次我想进行可视化时,我都必须加载要显示的文件,所以尽可能快地拥有它会很好,但老实说,如果ifstream
预成型合理,我不介意坚持可读的代码。它现在运行速度很慢,但这可能更多的是硬件 I/O 限制,而不是我在软件中可以做的任何事情,我只是想确认一下。
c++ - 如何将 fstream 中的 128 个字节准确地读取到字符串对象中?
如何将 fstream 中的 128 个字节准确地读取到字符串对象中?
我编写了一些代码来读取文件的前 128 个字节并打印它,然后是文件的最后 128 个字节并打印它。最后一部分有效,因为您可以轻松地迭代到 EOF,但是我如何从前面获得 128 个字节呢?下面的代码不起作用,因为您无法将 128 添加到 ifstream 迭代器,它不可索引,只能递增(似乎)。
当然我可以创建一个迭代器和 *++ 128 次,但必须有一个简单的单行方法来做到这一点,对吧?
c++ - How to read formatted data in C++?
I have formatted data like the following:
It's in a text file and I'm using ifstream to read it, but how do I separate the number and the word? The word will only consist of alphabets and there will be certain spaces or tabs between the word and the number, not sure of how many.
c++ - 找到 cin 和 ifstream 的流的结尾?
我正在阅读一本 C++ 教科书,作为 C++ 编程的复习。其中一个实践问题(无需过多介绍)要我定义一个可以作为参数传递 ifstream 或 cin(例如 istream)的函数。从那里,我必须通读流。麻烦的是,我想不出一种方法让这个函数使用 cin 和 ifstream 来有效地找到流的结尾。即,
不会为cin工作。我可以修改函数以查找某个短语(例如“#End of Stream#”或其他内容),但我认为如果我传递的文件流具有这个确切的短语,那么这是一个坏主意。
我曾想过使用函数重载,但到目前为止,这本书已经提到了它想要我这样做的时候。我可能在这个练习题上投入了太多精力,但我喜欢创作过程,并且很好奇是否有这样一种方法可以做到这一点而不会超载。
c++ - 从文本文件中读取时使用 getline
我最初正在构建一个类似索引的机制,使用 getline 读取文本文件的每一行,检查它是否与已知的标头声明 (string.compare) 匹配并将tellg位置作为索引保存到该点。然后我的意图是使用 seekg(index,ios::beg) 查找文件中标题所在的位置。在构建索引并调用 seekg(0,ios::beg) 时通读文件一次后,下一个 getline 返回一个空字符串,我希望在其中看到文件中的第一行。
下面是我的一部分代码,以更好地突出我的问题
getLineID 函数根据字符串比较的结果返回一个 int。
如果我需要重新读取文件,getline 的使用是否不正确?
c++ - 我是否需要定义“>>”运算符才能将 cin 与 Int32 一起使用?
我需要从文件中准确读取 32 位。我在 STL 中使用 ifstream。我能不能直接说:
...或者我是否需要以某种方式覆盖 >> 运算符才能使用 int32?我没有看到这里列出的 int32: http ://www.cplusplus.com/reference/iostream/istream/operator%3E%3E/
c++ - 解析未知大小的字符串
我正在尝试从文本文件中读取未知大小的字符串,我使用了以下代码:
但我不喜欢它,因为它有一个限制(即使我知道很难超过这个限制)但我想实现一个更好的代码,它根据即将到来的字符串的大小重新分配。
c++ - ifstream.peek() 到达文件末尾时的返回值
我在 Cplusplus.com 上看这篇文章,http: //www.cplusplus.com/reference/iostream/istream/peek/
如果 peek() 到达文件末尾,我仍然不确定它会返回什么。
在我的代码中,只要此语句为真,程序的一部分就应该运行
sourcefile 是我的 ifstream。
但是,它永远不会停止循环,即使它已经到达文件的末尾。
EOF 不意味着“文件结束”吗?还是我用错了?