システム時刻をファイルに書き込むコードがあります。
std::ofstream file("time.txt");
char *date;
time_t timer;
timer=time(NULL);
date = asctime(localtime(&timer));
while ( true ) {
std::cout << date << ", " << randomNumber << std::endl;
if (file.is_open())
{
file << date;
file << ", ";
file << randomNumber;
file << "\n";
}
}
file.close()
プログラムを実行して途中で停止すると(無限のwhileループ)、ファイルにデータを書き込むことができます。
ただし、コードを変更してSleep()タイマーを追加するだけの場合。ファイルにデータが書き込まれません。しかし、画面に出力が表示されます。これは予想される動作ですか?プログラムの実行を途中で終了しても、値がファイルに書き込まれるようにするにはどうすればよいですか?
std::ofstream file("time.txt");
char *date;
time_t timer;
timer=time(NULL);
date = asctime(localtime(&timer));
while ( true ) {
**Sleep(100); // wait for 100 milli-seconds**
std::cout << date << ", " << randomNumber << std::endl;
if (file.is_open())
{
file << date;
file << ", ";
file << randomNumber;
file << "\n";
}
}
file.close()
スリープタイマーの直後にファイルを閉じると、データが書き出されます。しかし、タイマーを追加する主な理由は、ファイルが書き込まれる頻度を遅くしたいということです...