如何将字符串传递给ofstream :: open以获取文件名

时间:2012-02-14 21:21:40

标签: c++

这是我的第一个C ++应用程序。我正在使用Visual C ++ 2010 Express。我正在尝试编写一个控制台程序,它将每隔10秒将“live”行写入我的WD USB硬盘驱动器上的alive.txt文件,以防止驱动器停止运转。我希望程序提示我输入驱动器号,然后使用它来告诉程序文件所在的位置。这有效:

while (true)
{
Sleep(5000);
cout << "Past sleep";
ofstream AliveFile;
AliveFile.open ("j:\\alive.txt");
AliveFile << "alive" << endl;
AliveFile.close();
} 
return 0;

但是当我从控制台输入获取驱动器号并将路径保存到字符串并将其传递给AliveFile.open时它不起作用:

string DriveLetter;
cout << "What is the drive letter for the drive you want to keep awake?" << endl;
getline(cin, DriveLetter);
cin.clear();
string Path;
Path = "\"" + DriveLetter + ":\\alive.txt\"";
cout << Path << endl;

while (true)
{
Sleep(10000);
ofstream AliveFile;
AliveFile.open ( Path );
AliveFile << "alive" << endl;
AliveFile.close();
} 
return 0;

当我cout&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;路径所以我不明白为什么AliveFile.open(Path)不起作用。

1 个答案:

答案 0 :(得分:1)

Path = "\"" + DriveLetter + ":\\alive.txt\"";  // Why adding \ before the root. 

尝试 -

Path = DriveLetter + ":\\alive.txt\";