gpt4 book ai didi

c++ - 遇到某个词时停止文件输入

转载 作者:行者123 更新时间:2023-11-30 02:42:32 24 4
gpt4 key购买 nike

我正在开发一个 C++ 程序,该程序应该最终使用散列从文件中读入的一段文字创建一个交叉引用表。现在我主要致力于从文件中读取输入并确保哈希函数正常工作。

这里有一些关于这部分问题的更多细节:

该程序应该从文件中一次一个单词地读入一个段落,直到读到一个由 10 个“*”组成的“单词”。在这行 * 的下面还有几行单词,稍后将用于测试程序。

使用我编写的代码,一切似乎都正常工作(我使用公式计算了几个单词的索引,得到的答案与显示的答案相同),但是,我当我到达 10 *s 行时,不确定如何让输入停止。因此,虽然这似乎是在正确读取文件并执行正确的计算,但它是对文件中的每个单词执行这些计算。

这是我写的代码:

#include <iostream>
#include <fstream>
using namespace std;

int hash(string word) {
int firstOff = word[0];
int lastOff = word[word.size() - 1];
int index = (firstOff * 256 + lastOff) % 23;

cout << index << endl;

return index;
}

int main() {
ifstream file;
file.open("prog7.dat");
if(!file.is_open()) {
cerr << "Error opening " << file << endl;
}
string word;
while(file >> word) {
hash(word);
}
}

这是我得到的输出:

12
6
17
21
1
21
12
14
11
12
7
14
16
10
2
22
19
21
22
7
7
12
21
21
3
9
3
12
14
14
0
3
21
7
6
7
12
7
17
6
2
16
21
7
14

如果有帮助,这是我用于输入的文件:

the relative lack of acceptance
of these products in the
corporate marketplace is
due less to technical than
to political factors the
availability of this technology
threatens the perks privileges
and traditions of corporate
management
**********
the
political
lack
relative
less
forgive
tradition
factors
more

谁能帮帮我?我真的很感激。

最佳答案

您可以简单地检查 while 条件中的单词:

while(file >> word && word != "**********") {
hash(word);
}

您也可以在到达单词时中断循环(如果您喜欢它的外观)。

while(file >> word) {
if (word == "**********") break;
hash(word);
}

关于c++ - 遇到某个词时停止文件输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26983060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com