从.txt文件中获取字符串变量 - 错误C2784

时间:2014-12-17 20:06:19

标签: string visual-studio-2010 boolean c++-cli ifstream

我所做的是我编写了一个程序,根据单选按钮的选择,它会将“True”或“False”写入文本文件(preferences.txt)作为字符串。在第二个程序中,我希望它在Load事件上读取此文件,并根据存在的内容,隐藏一堆控件或不执行任何操作。代码如下:

String^ hostScreenChoice;

private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) {
         ifstream prefFile ("preferences.txt");     //FIX THIS

         getline(prefFile, hostScreenChoice);

         if (hostScreenChoice == "True")
         {
             //DO NOTHING, CONTINUE
         }

         else if (hostScreenChoice == "False")
         {
             //HIDE CONTROLS
         }

现在我对C ++ / CLI相对较新(事后看来,我可能应该开始学习C#.NET),所以正如初学者所期望的那样,我遇到了一些错误。

error C2784: could not deduce template argument for 'std::basic_istream<_Elem,_Traits> &' from 'std::ifstream'

是犯规错误。我已经滚动浏览互联网,但到目前为止没有运气,虽然我认为这可能是由于我宣布字符串的方式,但我不确定。你们可以帮助我,还是有更有效的方法来做我正在尝试的事情?我正在使用VS 2010 Express作为我的IDE。

1 个答案:

答案 0 :(得分:0)

即使您使用C++进行编程,也不一定意味着您被迫使用本机C++函数。 C++/CLI为您提供.NET的完整方案,因此我认为使用FileStream ClassStreamReader Class阅读文件要容易得多。