這是我的第一個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