如何将字符串转换为ifstream

时间:2011-02-02 23:36:01

标签: c++ ifstream

我试图用ifstream打开一个文件,我想用一个字符串作为路径(我的程序创建一个字符串路径)。它会编译,但它保持空白。

string path = NameOfTheFile; // it would be something close to "c:\file\textfile.txt"
string line;

ifstream myfile (path); // will compile but wont do anything.
// ifstream myfile ("c:\\file\\textfile.txt"); // This works but i can't change it
if (myfile.is_open())
{
   while (! myfile.eof() )
   {
      getline (myfile,line);
      cout << line << endl;
   }
}

我使用的是Windows 7,我的编译器是VC ++ 2010。

4 个答案:

答案 0 :(得分:5)

string path = compute_file_path();
ifstream myfile (path.c_str());
if (!myfile) {
  // open failed, handle that
}
else for (string line; getline(myfile, line);) {
  use(line);
}

答案 1 :(得分:4)

您是否尝试过ifstream myfile(path.c_str());

有关while (!whatever.eof())的问题,请参阅previous post

答案 2 :(得分:1)

我不确定这实际上是如何编译的,但我认为你正在寻找:

#include <fstream>
#include <string>
//...
//...
std::string filename("somefile.txt");
std::ifstream somefile(filename.c_str());
if (somefile.is_open())
{
    // do something
}

答案 3 :(得分:0)

string ladAsJson = Json(Lad);