【发布时间】:2014-04-01 13:24:12
【问题描述】:
我想将时间保存到现有的 txt 文件中,以便知道何时添加此特定记录。我有此代码来自动检测时间
time_t Now1;
struct tm * timeinfo;
char time1[20];
time(&Now1);
timeinfo = localtime(&Now1);
strftime(time1, 20, "%d/%m/%Y %H:%M", timeinfo);
Passports.Record_Added_On = time1;
cout << "\n\nRecord Added On: " << Passports.Record_Added_On;
txt文件读取代码:
fs = new fstream(Passports_FILE_NAME, ios::in | ios::out | ios::binary);
if (!fs)
{
cout << "\n Can't open or create '" << Passports_FILE_NAME << "' file" << "\n";
system("pause");
break;
}
recs_num = -1;
while (fs->read((char *)&Passports, sizeof(Passports)))
{
recs_num++;
if (Passports.ID == id && !Passports.Deleted)
break;
}
if (fs->eof()) //if (the record is not in the file || it's there but it's Deleted)
{
cout << "\nThe specific passports record does not exists in the file.";
closeFile(fs);
cout << "\n\nExit\n";
return 0;
}
即使我显示它也能正常工作..但是当我关闭程序并再次打开它时.. 它显示像这样的奇怪字符或有时崩溃..任何人都可以帮助我并解释其背后的原因是什么?
【问题讨论】:
-
在
C++中,考虑使用std::chrono。我也不确定如何阅读您的问题,请更清楚。 -
如何写入文件?从您发布的代码中,您写入标准输出
-
@mic_e 我试图节省进入 txt 文件的时间,这样当我搜索这条记录时,它就会显示出来……但我得到的是图片中的奇怪字符跨度>
-
尝试空终止
time1。 -
@user3442192:你甚至没有显示读取文本文件的代码,我们应该如何找到其中的错误?
标签: c++ visual-c++ visual-studio-2013