C++ 如何将向量写入文件,以便在执行程序时使用?(c+;+;)

C++ 如何将向量写入文件,以便在执行程序时使用?(c+;+;),c++,C++,这里是初学者,请耐心等待。我在为一个简单的刽子手程序使用单词列表时遇到了一些麻烦,我正在创建这个程序作为练习。我正在使用此代码从文本文件中读取单词列表: vector<string> getWords() { vector<string> text_file; ifstream ifs( "my_hangman_words.txt" ); string temp; while(getline(ifs, temp)) { text_file.pu

这里是初学者,请耐心等待。我在为一个简单的刽子手程序使用单词列表时遇到了一些麻烦,我正在创建这个程序作为练习。我正在使用此代码从文本文件中读取单词列表:

vector<string> getWords()
{
  vector<string> text_file;
  ifstream ifs( "my_hangman_words.txt" );
  string temp;
  while(getline(ifs, temp))
  {
    text_file.push_back( temp );
  };  
  return text_file;
}
向量getWords() { 矢量文本文件; ifstream ifs(“my_hangman_words.txt”); 字符串温度; while(getline(ifs,temp)) { 文本文件。推回(临时); }; 返回文本文件; } 当我直接编译并运行时,这很好,但当我单独运行可执行文件时就不行了。据我所知,我需要将向量写入一个文件,并将该文件包含在我的程序中。有人能给我一个如何实现这一目标的指针吗?

\35; include
是用来引入代码而不是资源的

缺少绝对路径(即
c:/workingpath/file.txt
)可能会妨碍代码在直接运行时正确读取文件

在调试器中运行时,可以设置许多额外参数,包括和(Visual Studio的链接)。直接运行二进制文件时不应用这些


如果您能更具体地了解直接运行时发生的情况,我们可以提供更多帮助。

您可能正在从两个不同的目录运行可执行文件,它将只在当前目录中查找“my_hangman_words.txt”。您所说的“直接编译并运行”和“单独运行可执行文件”是什么意思@hmjd可能是对的——总是错误检查文件IO的伟大论据!使用硬编码几乎总是错误的paths@hmjd不,我是从同一个目录运行可执行文件。@John3136“直接编译并运行”的意思是从MacVim内部执行。“单独运行可执行文件”我的意思是转到finder并双击以在终端中运行它。康拉德的回答澄清了发生这种情况的原因。谢谢:)事实确实如此。当我尝试完整路径时,它运行良好。但这肯定不是在游戏中加入单词列表的正确方法?理想情况下,列表应该隐藏在可执行文件中,以便玩家看不到解决方案。这就是为什么我想到将向量写入文件并使用#include。至少我应该能够指向与可执行文件位于同一目录中的文本文件,而不是硬编码路径。还是我遗漏了什么?注意:我在mac上。你可以将它作为静态数组存储在头文件中,但我建议使用资源文件。最糟糕的情况是,您可以将这些值硬编码到程序中,但可以通过查看应用程序字符串轻松获得它们。:-)但是资源文件是特定于visual basic的否?既然我在MAC上,难道没有一个标准C++的高雅解决方案吗?