我正在做刽子手游戏,玩家必须猜一个字。 我创建了一个包含单词的文件,它是我游戏的参考。 我的游戏生成一个随机数,然后搜索文件中的单词。 例如,我的文件由100个单词组成,当游戏生成例如10的数字时,它必须转到第十个数字。 我想用记事本创建一个文件,并从中读取。有一种简单的搜索方式:只需逐个搜索,直到找到生成的数字。但我想要一个更快捷的方式。我想在一个文件中写相同长度的数据,所以我只能搜索一次,知道它中有多少单词,然后我可以用它创建一个随机文件。当我的游戏生成一个数字时使用seekg ()并去那个地方。
所以问题是这样的:我可以用自己输入的文件来做这个吗? 如果我不能这样我需要在程序中编写这样的代码:
ofstream outputfile("outfile.dat", ios::binary);
char word[10];
while (cin >> word)
{
word[9] = '\0';
outputfile.write(reinterpret_cast<const char *>(&word),
sizeof(word));
}
在我的参考资料中,对象有类似的东西。但是在这里它不起作用,当我想从这个文件中读取时,我只得到一个空白行。 这段代码可以采用格式化的方式,但它也不起作用!并且它不会输出相同长度的单词。
我使用这段代码从文件中读取但它不起作用:
ifstream in("outfile.dat", ios::in |ios::binary);
while(in.read(reinterpret_cast<char *>(&word), sizeof(word)))
cout << word << endl;
什么是问题?这种方法适用于对象......
和第二个问题:你认为像这样的算法是否很好?
非常感谢你