问题标签 [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.

0 投票
3 回答
3891 浏览

c++ - C++ 打开文件并将数据输入到类对象

简单的问题,希望是一种简单的方法,只是想验证我是否以正确/有效的方式进行操作。

我有一个类 T 对象,它通常被放入在我的 main() 函数中创建的向量中。它可以是任何类型的数据、字符串、int、float.. 等。我正在从一个文件中读取......它是从用户输入并传递给函数的。这是我的基本阅读功能:

insert 只是另一个函数,它将通过并将数据插入到我的数据结构中。我只是想确保这是传递该数据的最佳方式,如果它甚至可以工作。

0 投票
1 回答
2072 浏览

c++ - 如何发现/控制 C++ fstream 中的内部缓冲级别?

假设我这样做(一个人为的例子):

我假设(希望)iostream 库在这里做了一些内部缓冲,并且不会在操作系统级别将其变成无数的单字节文件读取操作。

有没有办法:

a)找出 ifstream 内部缓冲区的大小?

b)改变 ifstream 内部缓冲区的大小?

我正在编写一个文件过滤器,它需要以小块读取数 GB 的文件,我想尝试不同的缓冲区大小,看看它是否会影响性能。

0 投票
3 回答
2653 浏览

c++ - 我怎样才能打破阅读这个文本文件(使用ifstream)?C++

当出现“同义词”一词时,我想停止阅读我的文本输入文件。我正在使用 ifstream,但我不知道如何打破循环。我尝试使用字符串流“同义词”,但它最终使我的 bst 垃圾。我在下面包含了完整的项目文件,以防你想避免打字。

重要部分:

字典.txt

项目.cpp

MiBST.h(如果你想运行它)

0 投票
5 回答
6188 浏览

c++ - 在读取文件(ifstream)时,有什么方法可以引导它换行吗?

在读取文件(ifstream)时,有什么方法可以引导它换行吗?

例如,我希望这发生:

我的文件>>数组[1]>>数组[2]>>endl;

显然,“endl”是不允许的。还有另一种方法可以做到这一点吗?

编辑---感谢你们的快速回复!

从一个文本文件中,我试图将该文件中的两个字符串存储到数组中,然后对下一行执行相同的操作(或者直到我需要,使用 for 循环)

使用字符串对我来说很重要,因为它将使我未来的程序更加灵活。

0 投票
3 回答
2147 浏览

c++ - C++ ifstream 失败,为什么这条线不去它应该去的地方?

我想让标有 // THIS LINE SHOULD BE PRINTING 的行做它的事情,即打印“同义词”和“反义词”之间的 int 值。

这是文本文件:

字典.txt

0 投票
1 回答
286 浏览

c++ - 把这个垃圾从我的向量中取出

我想消除我在vector<int> synsAux下面遇到的垃圾。它应该打印:

我在第一位和第三位数字前多了一个 2,为什么?这 2 是空格的 ascii 值还是什么?我如何避免它的阅读?

这是运行程序所需的字典文件:


0 投票
6 回答
12538 浏览

c++ - std::ifstream 是否比 FILE 慢得多?

我被告知我的库比它应该的要慢,解析特定文件(文本文件,大小 326 kb)的速度要慢 30 倍以上。用户建议可能是我正在使用std::ifstream(大概而不是FILE)。

我宁愿不盲目地重写,所以我想我先在这里检查一下,因为我的猜测是瓶颈在其他地方。我正在逐个字符地阅读,所以我使用的唯一功能是get()peek()tellg()/seekg()

更新:

我进行了分析,得到了令人困惑的输出 - gprof 似乎并不认为它花了这么长时间。我重写了程序,首先将整个文件读入缓冲区,它的速度提高了大约 100 倍。我认为问题可能是tellg()/seekg()花费了很长时间,但 gprof 可能由于某种原因无法看到。在任何情况下,ifstream似乎都不会缓冲整个文件,即使对于这个大小。

0 投票
2 回答
79613 浏览

c++ - ifstream,行尾并移至下一行?

如何使用 std::ifstream 检测并移至下一行?

我知道如果发生错误,好的会告诉我,但是一旦发生错误,流就不再起作用了。在阅读另一个 int 之前,我如何检查我是否在行尾?

0 投票
2 回答
2311 浏览

c++ - c ++ ifstream,检测是字母还是EOLine?

我有这个函数可以从文件中读取所有整数。问题是当我阅读字母时,我触发了一个新行,我总是按 1 而不是到行尾搜索。我怎样才能更好地编写这个函数?

0 投票
5 回答
50734 浏览

c++ - 读取 Matrix txt 文件并存储为数组

我目前正在编写模拟退火代码来解决旅行推销员问题,并且在存储和使用我从 txt 文件中读取的数据时遇到了困难。文件中的每一行和每一列代表每个城市,两个不同城市之间的距离存储为一个 15 x 15 矩阵:

要阅读这篇文章,我有一个 LoadCities() 函数,如下所示:

我尝试了另一种 istreambuf_iterator 方法来将读取的材料操作到数组中,但是我似乎总是遇到并发症:

任何帮助将不胜感激。一直在抨击我的头,但收效甚微!

################ 编辑/更新

@SoapBox - SA 代码、函数和 main() 的一些细节。这不干净、不高效、不整洁,也不适合现阶段,只需要暂时工作。这个版本(下)工作并设置为解决多项式(最简单的问题)。将其转换为旅行推销员问题需要做的是:

  1. 编写 LoadCities() 函数来收集距离数据。(当前的)

  2. 更改 Initialise() 以获得所涉及的距离的总和

  3. 将 E() 更改为 TSP 函数(例如计算随机路线的距离)

后两个我知道我可以做到,但是我需要 LoadCities() 来做到这一点。在以下脚本中无需更改任何其他内容。

@strager - 我知道它的代码很糟糕,但不幸的是,由于我的项目所涉及的时间限制和随之而来的学习曲线,结果就是我们所需要的!:) 会在后期整理。

@ dirkgently - 这是这样做的最初原因,因此我的第一次尝试就是这样去做。