이것은 내 첫 번째 C++ 응용 프로그램입니다. 저는 Visual C++ 2010 Express를 사용하고 있습니다. 나는 드라이브가 아래로 회전하는 것을 막기 위해 10 초마다 내 WD USB 하드 드라이브의 alive.txt 파일에 "alive"행을 쓸 콘솔 프로그램을 작성하려고합니다. 프로그램에서 드라이브 문자를 묻는 메시지를 표시 한 다음이를 사용하여 파일이있는 프로그램을 알려줍니다.파일 이름에 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;
경로를 내가 AloudFile.open (경로)가 작동하지 않는 이유를 이해할 수 없기 때문에 내가 잘 맞을 때 < < 경로가 나온다.
당신은'DriveLetter' 정확히 한 문자의 문자열인지 확인이 있습니까? 길이를 확인 했습니까? 디버거로 프로그램을 디버깅하려고 했습니까? –