所以可能会问这个问题,但对于我的生活,我找不到任何地方。也许我没有正确地说它。如果是这样的道歉。
所以基本上,我正在写一个出租车号码和等级ID列表。当我输入时,它会正确写入文件,但如果有意义,它会重复相同的输入。
这是我的代码:
void transactionlog(int taxi_number, int rank_id)
{
int count = 0;
ofstream myfile;
myfile.open("transactionlog.txt");
while (count < 2)
{
myfile << "Joined the rank: ";
myfile << "\n\tTaxi number: " << taxi_number;
myfile << "\n\tRank id: " << rank_id;
count = count + 1;
}
}
void main()
{
node* front = NULL;
node* back = NULL;
int choice;
int taxi_number;
int rank_id;
do {
choice = menu();
switch (choice)
{
case 1:
cout << "Enter your taxi number: >";
cin >> taxi_number;
cout << "Enter your rank id: >";
cin >> rank_id;
cout << "\n";
joinRank(front, back, taxi_number);
transactionlog(taxi_number, rank_id);
break;
然后这是我得到的输出(在文本文档中重新格式化)
加入排名: 出租车号码:434 排名id:23
加入排名: 出租车号码:434 排名id:23
我希望文件中的第二个条目根据我输入的内容具有不同的日期。
对不起,如果这是长篇大论
答案 0 :(得分:0)
首先为什么使用循环迭代两次将输入写入文件?
第二:此循环将相同的最后一个输入写入文件两次并清除以前的内容,只要您在写入模式下使用打开文件而不指定追加模式。
将函数transactionlog
更正为:
void transactionlog(int taxi_number, int rank_id)
{
ofstream myfile("transactionlog.txt", ios::app);
myfile << "Joined the rank: ";
myfile << "\n\tTaxi number: " << taxi_number;
myfile << "\n\tRank id: " << rank_id;
myfile.close(); // to save the content
}