这是我的第一个C++应用程序。我正在使用Visual C++ 2010 Express。我正在尝试编写一个控制台程序,该程序将每隔10秒将“alive”行写入我的WD USB硬盘驱动器上的alive.txt文件,以防止驱动器停止转动。我希望程序提示我输入驱动器号,然后用它来告诉程序文件所在的位置。这工作:如何将字符串传递给ofstream :: open作为文件名
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 < <路径,所以我不明白为什么AliveFile.open(路径)不起作用。
你确定'DriveLetter'正是一个字母串?你检查了它的长度吗?你是否尝试用调试器来调试你的程序? – 2012-02-14 21:24:36