我有一些将系统时间写入文件的代码:
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()
如果我在睡眠定时器之后立即关闭我的文件,它会写出数据。但我添加计时器的主要原因是,我想减慢我的文件被写入的频率......