これは私の最初の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;
パス <パスだから、なぜAliveFile.open(Path)が動作しないのか分かりません。
あなたは 'DriveLetter'が正確に1文字の文字列であることを確認していますか?あなたはその長さを確認しましたか?デバッガでプログラムをデバッグしようとしましたか? –