尝试使用 fstream 打开文件,但它不起作用
Trying to open file using fstream but it is not working
我正在尝试运行它,但文件始终无法加载。我正在尝试做的是将字典加载到数组中,数组的每个级别都占一个单词。
#include <iostream>
#include <string>
#include <fstream>>
#include <time.h>
#include <stdlib.h>
using namespace std;
int Rand;
void SetDictionary(){
srand(time(NULL));
Rand = rand() % 235674;
fstream file("Hangman.txt");
if(file.is_open()){
string Array[235675];
for(int X = 0; X < 235673; X++){
file >> Array[X];
}
cout << Array[Rand];
}else{
cout << "Unable To Open Filen";
}
}
int main(){
SetDictionary();
}
vector<string> words;
{
ifstream file("Hangman.txt");
string word;
while (file >> word)
{
words.push_back(word);
}
}
string randword = words[rand() % words.size()];
起初,我看到你在 cout <<Array[Rand] 完成后不会重用数组。在这种情况下,您根本不需要数组。将文件逐行读取到临时变量中,如果条件 X==Rand 则删除此变量,然后中断。其次,可以改进执行。假设您正在尝试从文件中获取随机单词。将 Rand 生成为 0..file size,然后偏移到此 Rand 的速度要快 1000 倍。现在你"在"想要的单词中,任务是分别来回和向前阅读工作开始和结束。此算法将显示略有不同的概率分布。第三。如果您计划重用文件数据,将整个文件读入内存,然后按单词拆分,将单词偏移量存储为整数数组会快得多。最后。对于非常庞大的词典(或者如果程序在有限的内存上运行),可以只存储单词偏移量,并即时重新读取字典内容。
相关文章:
- SFML 加载从文件不起作用,奇怪的错误
- 为什么写入文件不起作用
- Opencv ml 头文件不起作用
- 将数组保存到二进制文件不起作用 c++
- C++输出流到文件不起作用
- 使用 bazel 构建 TensorFlow C++调用模型时,.so 文件不起作用
- C++接口(标头)和实现文件不起作用
- 二进制文件:ios ::二进制文件不起作用
- 解密AES-256加密文件不起作用
- MinGW .h 编译文件不起作用:此文件的版本与您运行的 Windows 版本不兼容
- 在 Linux 中使用 C++ 列出目录的所有文件不起作用
- 以二进制模式写入文件不起作用
- Android NDK 中的某些 c++ 包含文件不起作用
- 通过 Makefile 编译 2 个文件不起作用
- 标头和源类文件不起作用
- 线程清理器的抑制文件不起作用:出了什么问题
- 我的生成文件不起作用
- c++fileIO创建/打开文件不起作用
- C++ 使用文件不起作用初学者
- 在QtCreator中逐行读取文本文件不起作用